比较两组字符串

时间:2015-04-01 15:22:59

标签: java comparison

这是我的问题。我正在尝试使用&&.equals来比较两个不同的字符串,但似乎无法给出我应该得到的结果。

这是我的代码(从我认为问题出发的地方开始):

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

        String temp1 = datalist.get(i);
        String temp2 = datalist.get(i+1);

        System.out.println(temp1);
        System.out.println(temp2);

        if (temp1.equals(dataquery1)) {

            System.out.println("TRUE");

            if (temp2.equals(dataquery2))   {

            System.out.println("TRUE");
            array2.add((datalist.get(i)));
            array2.add((datalist.get(i+1)));
            array2.add((datalist.get(i+2)));

            }   
        }

    }

    System.out.println("\n\nArray2 size : " + array2.size());
    for (int j = 0; j < array2.size(); j++) {

        System.out.println("Array2 : " + array2.get(j));

    }

这是数组:

[0]  Lipase B
[1]  X-33
[2]  pPICZ?A
[3]  Candida antarctica lipase B (CALB)
[4]  SMD1168H
[5]  pGAP?B
[6]  Lip 2
[7]  X-33
[8]  pPICZ?A

结果是:

Lipase B
X-33
Candida antarctica lipase B (CALB)
SMD1168H
Lip 2
X-33


Array2 size : 0

结果应该是:

TRUE
TRUE

Array2 size : 3
Array2 : Lipase B
Array2 : X-33
Array2 : pPICZ?A

我尝试使用if (temp1.equals(dataquery1) && temp2.equals(dataquery2)),但它不起作用。 但是,如果我分别更改dataquery1dataquery2及其值Lipase BX-33,则代码可以正常工作。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

从外观上看,你将dataquery1设置为&#34; Lipase&#34;当你应该将它设置为&#34;脂肪酶B&#34;。如果你解决了这个问题,我会得到正确的输出:

Lipase B
X-33
TRUE
TRUE
Candida antarctica lipase B (CALB)
SMD1168H
Lip 2
X-33


Array2 size : 3
Array2 : Lipase B
Array2 : X-33
Array2 : pPICZ?A