【发布时间】:2013-08-20 17:21:47
【问题描述】:
我是一个java初学者,想做一些逻辑的东西。我从一个简单的程序开始(即)来查找字符串中字符的出现总数。但我最终得到了这个例外
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 52
at java.lang.String.charAt(Unknown Source)
我使用了以下代码
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
String myStr = "sofdaasdasdaofsdwerwtytuoftyutyusdfsdfsdcsadaswdeasd";
// Counting number of occurences of 'of' in myStr
int counter = 0;
int totalLength = myStr.length();
char char1;
char char2;
// To find of
String myVal = "of";
String cmpVal1;
String cmpVal2;
String cmpValStr;
for (int i = 0; i < totalLength; i++) {
char1 = myStr.charAt(i);
cmpVal1 = Character.toString(char1);
char2 = myStr.charAt(i + 1);
cmpVal2 = Character.toString(char2);
cmpValStr = cmpVal1 + cmpVal2;
if (cmpValStr == myVal) {
counter++;
}
}
System.out.print(counter);
}
}
【问题讨论】:
-
我相信罪魁祸首是
char2 = myStr.charAt(i + 1);,比较字符串使用String.equals() -
我不明白,您要搜索哪个角色?或者,您是否在字符串“sofdaasdasdaofsdwerwtytuoftyutyusdfsdfsdcsadaswdeasd”中搜索字符串“of”?
-
对不起。这是我的错误,我在这里发布我的问题之前没有正确浏览我的代码。现在我明白了,谢谢大家。
标签: java string exception character