simple String示例

时间:2017-12-04 12:34:01

标签: java string

我有以下代码但我无法检测为什么没有输出 当我调试它时,控制流永远不会进入循环但我无法弄清楚为什么

有什么人可以帮帮我吗?  这是我的代码

public class DealWithStrings {
    ArrayList<String> container = new ArrayList<>();

    public void printDuplicate() {
        String string = "aaabed";
        String[] res = string.split("");

        for (int i = 1; i < string.length(); i++) {
            if (res[i] == res[i - 1]) {
                container.add(res[i]);
            }
        }

        for (String s : container) {
            System.out.println(s);
        }
    }

    public static void main(String[] args) {
        DealWithStrings d = new DealWithStrings();
        d.printDuplicate();
    }
}

2 个答案:

答案 0 :(得分:3)

使用.equals比较字符串,而不是==

而不是

if(res[i]==res[i-1])

使用

if(res[i].equals(res[i-1]))
如果对象相同,

==将评估为true,在这种情况下它们永远不会。 .equals将检查字符串的内容(实际文本)是否相同。

答案 1 :(得分:1)

用'.equals()'方法替换代码'=='运算符,因为, '=='等于运算符比较内存中两个字符的引用,而您需要检查该引用处的'内容'。

重写.equals方法以检查字符串的内容。

for (int i = 1; i < string.length(); i++) {
        if (res[i].equals(res[i - 1])) {
            container.add(res[i]);
        }
    }