Java 简单字符串示例

Java 简单字符串示例,java,string,Java,String,我有下面的一段代码,但我无法检测出为什么没有输出 当我调试它时,控制流永远不会进入for循环,但我不知道为什么 谁能帮帮我吗? 这是我的密码 public class DealWithStrings { ArrayList<String> container = new ArrayList<>(); public void printDuplicate() { String string = "aaabed"; Strin

我有下面的一段代码,但我无法检测出为什么没有输出 当我调试它时,控制流永远不会进入for循环,但我不知道为什么

谁能帮帮我吗? 这是我的密码

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();
    }
}
公共类DealWithString{
ArrayList容器=新的ArrayList();
公共作废打印副本(){
String=“aaabed”;
String[]res=String.split(“”);
对于(int i=1;i
使用
.equals
比较字符串,而不是
=

而不是

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


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

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

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

for (int i = 1; i < string.length(); i++) {
        if (res[i].equals(res[i - 1])) {
            container.add(res[i]);
        }
    }
for(int i=1;i
它确实进入了循环,如果
从未发展为
true
那么为什么要否决?是的,为什么要否决?堆栈溢出太奇怪了。我不是投反对票的人,但如果用负数惩罚某人,可能会有多大帮助。
for (int i = 1; i < string.length(); i++) {
        if (res[i].equals(res[i - 1])) {
            container.add(res[i]);
        }
    }