我正在做一个程序的一部分,我应该在其中查看最后一个字符在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))
答案 0 :(得分:1)
您所做的就像"Hello".substring(3, 1)
substring
方法采用两个参数startIndex
和endIndex
。因此,结束索引应始终大于开始索引。
在cadena.substring(i,1)
中,由于条件i
,0
的值将从cadena.length()-2
到i<cadena.length()-1
答案 1 :(得分:0)
您可以执行以下操作:
int count = 0;
char lastChar = cadena.charAt(cadena.length()-1);
for (int i = 0; i < cadena.length()-1; i++) {
if(lastChar==cadena.charAt(i)) count++;
}