System.out.print("请输入一串字符串:"); Scanner sc = new Scanner(System.in);
String str = sc.nextLine(); char[] ch = str.toCharArray(); int letter = 0;
int space = 0;
int digit = 0;
int others = 0; for(int i = 0; i <=ch.length; i++){
if(Character.isLetter(ch[i])){
letter++;
}else if(Character.isSpaceChar(ch[i])){
space++;
}else if(Character.isDigit(ch[i])){
digit++;
}else{
others++;
}
} System.out.println("该字符串中含有英文字符:"+letter);
System.out.println("含空格:"+space);
System.out.println("含数字:"+digit);
System.out.println("含其他字符:"+others);运行结果是
run:
请输入一串字符串:dw35y7k8l0]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at myjava.Main.main(Main.java:30)
Java Result: 1
请问是怎么回事啊?能否帮我解释一下
String str = sc.nextLine(); char[] ch = str.toCharArray(); int letter = 0;
int space = 0;
int digit = 0;
int others = 0; for(int i = 0; i <=ch.length; i++){
if(Character.isLetter(ch[i])){
letter++;
}else if(Character.isSpaceChar(ch[i])){
space++;
}else if(Character.isDigit(ch[i])){
digit++;
}else{
others++;
}
} System.out.println("该字符串中含有英文字符:"+letter);
System.out.println("含空格:"+space);
System.out.println("含数字:"+digit);
System.out.println("含其他字符:"+others);运行结果是
run:
请输入一串字符串:dw35y7k8l0]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11
at myjava.Main.main(Main.java:30)
Java Result: 1
请问是怎么回事啊?能否帮我解释一下
解决方案 »
- java se小程序求大神解释
- 关于JTree树的鼠标点击事件
- 求Jmock高手解答!!!
- 看到 下面代码之后 看看谁能猜出更多蛛丝马迹???
- 一个jsp的验证参数问题.分不够可以再给.不会帮忙顶
- windowsXP下能使用Java3D API吗?
- 有两个问题要问,很难的哟,谁来挑战一下!!
- 100 * 5.11 = 511.00000000000006
- java.lang.ClassCastException: org.apache.xerces.dom.DocumentImpl的问题?
- 怎么在access中存储word(.doc)文件?以及怎么先是access中的word文件?
- 求jsf开发的源代码
- 问个getHeader()的问题?
下标最多只能访问到ch.length-1,所以一般改为:
for(int i = 0; i < ch.length; i++){
你喜欢的话也可以改为:
for(int i = 0; i <=ch.length-1; i++){
--->
for(int i = 0; i <ch.length; i++){