我正在做一个程序的一部分,我应该在其中看到最后一个字符在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方法采用两个参数startIndexendIndex。因此,结束索引应始终大于开始索引。

cadena.substring(i,1)中,由于条件i0的值将从cadena.length()-2变为i<cadena.length()-1

08-07 03:10