java - JAVA中最后一个字符出现的次数只用String

标签 java string

我正在做一个程序的一部分,我应该在其中看到最后一个字符在 JAVA 中出现的次数。

问题是我是使用字符串的新手(并且只能使用字符串)。告知一点我已经看到我可以使用 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: String index out of range:-1

在这一行

if(cadena.substring(i,1).equals(aux))

最佳答案

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

substring方法有两个参数 startIndexendIndex .所以结束索引应该总是大于开始索引。

cadena.substring(i,1) , i 的值将从0开始至 cadena.length()-2 , 因为条件 i<cadena.length()-1

关于java - JAVA中最后一个字符出现的次数只用String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53221850/

相关文章:

java - 以下程序的时间复杂度

java - Java 中的排序

Java 字符串文字自动解释为 String 对象,但是如何呢?

c - 如何将字符缓冲区中的十六进制地址转换为写入内存

java - 无法打开 JPA 实体管理器

java - 如何让我的程序根据特定情况重复执行?

Java EE 安全性 - 登录后不重定向到初始页面

java - 在哪里上传图片,以便 Glide 的 URL 保持不变

比较文本文件中的字符串,然后打印整行

string - XE7 中的 Str 生成奇怪的警告