我是一名java初学者,想做一些逻辑工作。我已经开始使用一个简单的程序(即)来查找字符串中字符出现的总次数。但是,我结束了与此异常计算字符串中字符出现次数的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);'并且比较字符串use ['String.equals()'](http://docs.oracle.com/javase/7/docs/api/java/lang/ String.html#equals(java.lang.Object)) – Smit
我不明白,你在搜索哪个字符?或者,你是否在字符串“sofdaasdasdaofsdwerwtytuoftyutyusdfsdfsdcsadaswdeasd”中搜索字符串“of”? – ThePerson
对不起。这是我的错误,我没有正确地通过我的代码之前发布我的问题在这里。现在我明白了,谢谢大家。 – raduns