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

时间:2018-10-27 12:53:51

标签: java list arraylist

我想通过列表编写一个简单的系统,该系统将识别符号并对列表中的某些符号进行一些计算,并确定是否存在任何错误。

它看起来像这样:

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输出。没有任何“打开”和“关闭”结果。

Here is a full IDE output

2 个答案:

答案 0 :(得分:1)

==测试引用是否相等(它们是否是同一对象)。

您需要使用")".equals(list.get(i))来测试值是否相等(在逻辑上它们是否相等)。

答案 1 :(得分:1)

private static void chekList (List<String> list){
    int open = 0;
    int close =0;

    for(String str : list) {
        System.out.println(str);

        if ("(".equals(str))
            System.out.println(++open);
        else if (")".equals(str))
            System.out.println(++close);
    }

    if (open != close)
        System.out.println("false!");
}