2012-12-29 68 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()方法。