java - 您可以使用 charAt(); 来比较字符串中的值吗?

标签 java string-comparison

我目前正在为类编写java代码,我正在尝试弄清楚如何在用户输入上实现游程长度编码。我遇到的主要问题是比较第一个字母与下一个字母,以及该字母与下一个字母,依此类推,看看它们是否是同一个字母。目前我有:

        System.out.print("Enter a string: ");
    String s1 = reader.nextLine();

    int sum = 0;
    char ast = '*';
    //System.out.println("Run length encoded version of string: ");


    for (int counter = 0; s1.charAt(counter) <= s1.length()-1; counter++) {

        for (int j = 0; s1.charAt(counter) == s1.charAt(j)+1; j++) {

            sum++;
            counter++;

        }

        if (sum >= 4) {

            System.out.print(ast + s1.charAt(counter) + sum);

        }

        else {
            System.out.print(s1.charAt(counter));
        }


    }

我知道这里的大问题来自哪里以及为什么它不起作用,但是,即来自

for (int j = 0; s1.charAt(counter) == s1.charAt(j)+1; j++) {

        sum++;
        counter++;

    }

分段,因为它无限延伸。有没有正确的方法来做到这一点?教授提到它可以在没有循环的情况下完成,虽然我可以看到它是可能的,但我不认为它很短。任何帮助将不胜感激,谢谢!

最佳答案

String str="ayyusaab";
char[] ch=str.toCharArray();

for(int i=0;i<ch.length-1;i++){
   for(int j=i+1;j<ch.length-1;j++){
      if(ch[i]==ch[j]) {
         System.out.println(ch[i]+" at Index "+i +"with j at "+j);
      }
   }
}

关于java - 您可以使用 charAt(); 来比较字符串中的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58459972/

相关文章:

c# - 允许搜索重音字符吗?

java - 基于标准的字符串验证

Java - 从 HashMap 中选择一个随机值,但指定的整数最大

Java - 是否可以通过编程方式确定 Windows 防病毒解决方案是否是最新的?

java - TextView 中的 HTML 链接问题

java - setContentLength 设置为高

c# - 为什么 string.Compare 似乎不一致地处理重音字符?

java - 如何在 Android 的 void 函数中退出?

delphi - 使用 Unicode 字符串调用时 StrLComp 与 AnsiStrLComp

string - 如何在 OCaml 中比较字符串?