题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:利用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