2015-04-01 273 views
0

這是我的問題。我試圖通過使用&&.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,則代碼正常工作。

任何人都可以幫忙嗎?

+0

那麼,如果它改變'dataquery1'和'dataquery2'時會出現什麼問題? – Bubletan 2015-04-01 15:31:04

+0

從我的SearchData.jsp中檢索'dataquery1'和'dataquery2',以便用戶可以查詢他們想要的任何數據。如果我已經將它們都更改爲一個字符串,那麼沒有用。 – 2015-04-01 15:36:32

+1

我不能完全理解你想要的東西...... – rigon 2015-04-01 15:38:00

回答

0

從外觀上看,當您將其設置爲「脂肪酶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 
+0

好的,這很奇怪。 我以前試過,它不會工作。 非常感謝。 但是,如果我只想放一部分查詢,比如'lip',它可以給我所有包含'lip'的字符串? 我的講師說了一些關於正則表達式或'正則表達式'但我不確定.. – 2015-04-01 15:52:37

+0

您可以使用正則表達式或者您可以使用indexof,例如.. if(temp1.indexOf(dataquery1)!= - 1){ //代碼 } – 2015-04-01 15:53:55