我的程序应该打印出名称的首字母并打印姓氏。
例如。如果输入的名称是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
将等于l
或w.length()
,这超出了字符串的末尾。