猿问

如何检查列表字符串变量的元素

我想通过列表编写一个简单的系统,它会识别符号并对列表中的一些符号进行一些计算,并判断是否有任何错误。


它看起来像这样:


private static List<String> list = new ArrayList<>();

private static void splitToList(String string){


    list.addAll(Arrays.asList("((35+6-(4+4))=0;".split("")));

    chekList(list);

}

private static void chekList (List list){

    int open = 0;

    int close =0;


    for (int i=0;i<list.size();i++) {

       System.out.println(list.get(i));

        if (list.get(i) == "(") {

            open++;

            System.out.println(open);

        }

        if (list.get(i) == ")") {

            close++;

            System.out.println(close);

        }


    }

    if (open != close){

        System.out.println("false!");

        br = true;

    }


}

因此,这个用于识别列表元素中的“(”和“)”的 if 语句无论如何都不起作用。有什么方法可以检查我的列表元素是否为“(”或“)”?


这是一个完整的 IDE 输出。没有任何“打开”和“关闭”结果。

慕尼黑5688855
浏览 131回答 2
2回答

扬帆大鱼

==&nbsp;测试引用相等性(它们是否是同一个对象)。您需要使用")".equals(list.get(i))来测试值是否相等(它们在逻辑上是否“相等”)。

九州编程

private static void chekList (List<String> list){&nbsp; &nbsp; int open = 0;&nbsp; &nbsp; int close =0;&nbsp; &nbsp; for(String str : list) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println(str);&nbsp; &nbsp; &nbsp; &nbsp; if ("(".equals(str))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(++open);&nbsp; &nbsp; &nbsp; &nbsp; else if (")".equals(str))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println(++close);&nbsp; &nbsp; }&nbsp; &nbsp; if (open != close)&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("false!");}
随时随地看视频慕课网APP

相关分类

Java
我要回答