0

基本型Stringといくつかの文字列str(String型の配列のように扱うことができます)を持つ2次元配列Tを与えます。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++;
                }
            }
        }
    }
}

問題は、コードの最初の部分が無視されていることです(条件が満たされている必要がある場合でも)。この問題を解決するための提案をいただければ幸いです。

4

2 に答える 2

6

== を使用して文字列を比較することはできません。試す:

if(T[k][2].equals(str.substring(indeksck+1))) {
于 2012-12-29T14:28:36.290 に答える
2

==Java の演算子は、参照比較に使用されます。オブジェクト (文字列も同様) の等価性をチェックするには、メソッドを使用する必要がありますequals()

于 2012-12-29T14:32:20.397 に答える