JAVA中最后一个字符出现的次数仅使用String

时间:2018-11-09 08:01:38

标签: java string

我正在做一个程序的一部分,我应该在其中查看最后一个字符在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))

2 个答案:

答案 0 :(得分:1)

您所做的就像"Hello".substring(3, 1)

substring方法采用两个参数startIndexendIndex。因此,结束索引应始终大于开始索引。

cadena.substring(i,1)中,由于条件i0的值将从cadena.length()-2i<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++;
}