java - 如何比较单个字符串中的元素?

标签 java arrays string

当且仅当 1 和 0 并排重复多次时,我需要打印 1 和 0 字符串中元素的索引。

例如: 输入:“0010011” 输出:“0,3,5”

重复从索引 0、3 和 5 开始。

这是我目前拥有的

Scanner keyboard = new Scanner(System.in);
    ArrayList runs = new ArrayList();


    System.out.println("Enter non empty string of 1s and 0s");
    String input = keyboard.nextLine();
    char[] array = input.toCharArray();

    for(int i = 0; i < input.length(); i++)
    {
        if(array[i] == array[i++])
        {
            runs.add(i);
        }

    }
    for(int i = 0; i<= array.length; i++)
    {
        System.out.println(runs);
    }

当我测试这个时,我尝试输入“00100”并得到“1,3,5”的输出。再测试一下上面输入“0010011”,得到“1,3,5,7”。它似乎打印奇数,而不是数字开始重复的索引。谁能发现我做错了什么吗?我有一种感觉,它来 self 在第一个 for 循环中的比较。

最佳答案

这应该有效:

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter non empty string of 1s and 0s");
String input = keyboard.nextLine();
char lastChar = '~'

for(int i=0; i<input.length() - 1; i++) {
    if(input.charAt(i) == input.charAt(i + 1) && (i == 0 || input.charAt(i) != input.charAt(i - 1))) {
        System.out.println(i);
    }
}

关于java - 如何比较单个字符串中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22233708/

相关文章:

java - 如何调用带有数组参数的方法

php - 从检索到的行生成多维数组

具有常量值的 Python 列表

c++ - 双图插入问题

用于比较字符串的 Java 占位符

java - 从 Java Applet 到网页的最大字符串长度或其他字符串限制?

java - 为什么我会收到类转换异常(使用泛型,可比较)?

c - 快速排序字符数组(字符串)C编程

java - 为 Java 初学者复制字符串 n 次

java - Java for Android 中的多个移动 Sprite