這里一直拋出一個異常,該怎么處理
public class HelloWorld {
? ? public static void main(String[] args) {
// 定義一個字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
? ? ? ??
? ? ? ? // 出現(xiàn)次數(shù)
int num = 0;
? ? ? ??
? ? ? ? ?// 循環(huán)遍歷每個字符,判斷是否是字符 a ,如果是,累加次數(shù)
for (int i=1;i<=s.length();i++ ?)
{
? ? ? ? ? ? // 獲取每個字符,判斷是否是字符a
if ( s.charAt(i)=='a') {
? ? ? ? ? ? ? ? // 累加統(tǒng)計次數(shù)
num++;?
}
}
System.out.println("字符a出現(xiàn)的次數(shù):" + num);
}
}
運行結果是:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 49
at java.lang.String.charAt(String.java:658)
at HelloWorld.main(HelloWorld.java:13)
2015-09-29
String s角標越界, for (int i=1;i<=s.length();i++ ?), s.length()是字符個數(shù),角標是從0開始,所以s的最大角標是s.length()-1, 所以s.charAt(i),取到s.charAt(s.length())時越界,拋出java.lang.StringIndexOutOfBoundsException,即String索引越界異常
2015-09-29
同上,下標從0開始。;for (int i=1;i<=s.length();i++ ?)改為for(int i=0;i<s.length-1;i++)