我的程序应该打印出名称的首字母并打印姓氏。
例如。如果输入的名称是Mohan Das Karamchand Gandhi,则输出必须是MDK Gandhi。虽然我得到“字符串索引超出范围”异常。

import java.util.Scanner;
public class name {

public static void main(String[] args) {
    Scanner s=new Scanner(System.in);
    System.out.println("Enter a string");
    String w=s.nextLine();
    int l=w.length();
    char ch=0; int space=0;int spacel = 0;
    for(int i=0;i<l;i++){
        ch=w.charAt(i);
        if(ch==32||ch==' '){
            space+=1;
            spacel=i+1;
            System.out.print(w.charAt(spacel) + " ");
        }
    }
    System.out.println(w.substring(spacel,l+1));
}

最佳答案

这是罪魁祸首:

        spacel=i+1;
        System.out.print(w.charAt(spacel) + " ");


i等于l - 1时,space1将等于lw.length(),这超出了字符串的末尾。

08-16 17:47