2012-12-29 132 views
0

給二維陣列T與基本類型字符串和一些字符串str(其可以像String類型的陣列來處理的)我要檢查,如果T包含一個搜索某些部分str作爲它的條目。我試過這個:執行在字符串[] []

int indeksck = str.indexOf("C"); 

while(k<T.length){ 
    if(T[k][2] == str.substring(indeksck+1)){ 
     if(T[k][1] == str.substring(6, indeksck)){ 
      int ile_o = Integer.parseInt(T[k][0]); 
      T[k][0]= Integer.toString(ile_o+1); 
      T[k][3] = T[k][3]+"X"+str.substring(1,6); 
      k = T.length+1; 
     } else { 
      k++; 
     } 

    } else { 
     k++; 

     if(k==T.length){ 
      k = 0; 
      while(k<T.length){ 
       if(T[k][0]==null){ 
        T[k][0] = Integer.toString(1); 
        T[k][1] = str.substring(6,indeksck); 
        T[k][2] = str.substring(indeksck+1); 
        T[k][3] = str.substring(1,6); 
        k = T.length+1; 
       } else { 
        k++; 
       } 
      } 
     } 
    } 
} 

問題是,我的代碼的第一部分被忽略(即使條件應滿足)。我將不勝感激並提出解決這個問題的建議。

+8

從未與'比較字符串==',使用'.equals()',[閱讀](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java )作出解釋。 – jlordo

+0

這裏有很多事情你沒有解釋。爲什麼從子串索引'6'開始?爲什麼每個條目'T [k]'只有索引'0-3'?什麼是'X'?你爲什麼將T [k] [0]'遞增1並轉換回字符串?你能提供一個'T'和'str'內容的例子,你的代碼究竟在尋找什麼? – mellamokb

+0

@jlordo我試過這個,但它沒有奏效。 – data

回答

6

不能使用==做比較的字符串。請嘗試:

if(T[k][2].equals(str.substring(indeksck+1))) { 
2

== Java中的運算符用於參考比較。要檢查對象的等價性(對於字符串也是如此),您需要使用equals()方法。