public class HelloWorld {
public static void main(String[] args) {
// 定义一个字符串
String s = "aljlkdsflkjsadjfklhasdkjlflkajdflwoiudsafhaasdasd";
// 出现次数
int num = 0;
// 循环遍历每个字符,判断是否是字符 a ,如果是,累加次数
for (int i=1;i<=s.length();i++ )
{
// 获取每个字符,判断是否是字符a
if ( s.charAt(i)=='a') {
// 累加统计次数
num++;
}
}
System.out.println("字符a出现的次数:" + 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)
String s角标越界, for (int i=1;i<=s.length();i++ ), s.length()是字符个数,角标是从0开始,所以s的最大角标是s.length()-1, 所以s.charAt(i),取到s.charAt(s.length())时越界,抛出java.lang.StringIndexOutOfBoundsException,即String索引越界异常
同上,下标从0开始。;for (int i=1;i<=s.length();i++ )改为for(int i=0;i<s.length-1;i++)