比较两组字符串
这是我的问题。我试图通过使用&&
和.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))
但它不起作用。 但是,如果我将dataquery1
和dataquery2
分别更改为其值Lipase B
和X-33
,则代码正常工作。
任何人都可以帮忙吗?
从外观上看,当您将其设置为“脂肪酶B”时,您将dataquery1设置为“脂肪酶”。如果你解决这个问题,我得到正确的输出:
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
好的,这很奇怪。 我以前试过,它不会工作。 非常感谢。 但是,如果我只想放一部分查询,比如'lip',它可以给我所有包含'lip'的字符串? 我的讲师说了一些关于正则表达式或'正则表达式'但我不确定.. – 2015-04-01 15:52:37
您可以使用正则表达式或者您可以使用indexof,例如.. if(temp1.indexOf(dataquery1)!= - 1){ //代码 } – 2015-04-01 15:53:55
那么,如果它改变'dataquery1'和'dataquery2'时会出现什么问题? – Bubletan 2015-04-01 15:31:04
从我的SearchData.jsp中检索'dataquery1'和'dataquery2',以便用户可以查询他们想要的任何数据。如果我已经将它们都更改为一个字符串,那么没有用。 – 2015-04-01 15:36:32
我不能完全理解你想要的东西...... – rigon 2015-04-01 15:38:00