我正在做一个程序的一部分,我应该在其中看到最后一个字符在JAVA中出现的次数。
问题是我是使用Strings的新手(并且只能使用String)。告诉我一点,我看到使用equals可以比较字符串。通过子字符串,我可以循环选择一个字母。问题出在编译时,我退出了String的索引。而且我不明白为什么,因为我只有.length-1
String aux;
int cont = 0;
aux = cadena.substring(cadena.length()-1);
for (int i = 0; i < cadena.length()-1; i++) {
if(cadena.substring(i,1).equals(aux)) {
cont++;
}
}
java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:-1
在这条线
if(cadena.substring(i,1).equals(aux))
最佳答案
您所做的就像"Hello".substring(3, 1)
substring
方法采用两个参数startIndex
和endIndex
。因此,结束索引应始终大于开始索引。
在cadena.substring(i,1)
中,由于条件i
,0
的值将从cadena.length()-2
变为i<cadena.length()-1