题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用while语句,条件为输入的字符不为'\n'.
1 Scanner in = new Scanner(System.in); 2 String s = in.nextLine(); 3 int index = 0; 4 int Eng = 0; 5 int Space = 0; 6 int Num = 0; 7 int Other = 0; 8 while(s.charAt(index) != '\n') 9 { 10 if(s.charAt(index)>='a'&&s.charAt(index)<='Z') 11 { 12 Eng++; 13 } 14 else if(s.charAt(index) == ' ') 15 { 16 Space++; 17 } 18 else if(s.charAt(index)>='0'&&s.charAt(index)<='9') 19 { 20 Num++; 21 } 22 else 23 { 24 Other++; 25 } 26 index++; 27 } 28 System.out.print("英文字母"+Eng+"个"); 29 System.out.print("空格"+Space+"个"); 30 System.out.print("数字"+Num+"个"); 31 System.out.print("其他字符"+Other+"个"); 32 }
报错为java.lang.StringIndexOutOfBoundsException
其他人的接解决方案为将字符串转化为数组,遍历数组解决。
为什么不能直接遍历字符串,在学习学习看看有没有解决方案
来源:https://www.cnblogs.com/wbh1996/p/12610889.html