0

String のバイナリ検索を行っていたところ、出力エラーが表示されました。何が欠けているのかわからないので、アドバイスが必要です。

ここに私のコード:

public static final int Not_Found = -1;

    public static int BS( String[][] record, String x )
{
int low = 0;
int high = record.length - 1;
int mid;

while( low <= high )
{
mid = ( low + high ) / 2;

if( record[ mid ].compareTo( x ) < 0 )
low = mid + 1;
else if( record[ mid ].compareTo( x ) > 0 )
high = mid - 1;
else
return mid;
}

return Not_Found;
    }

それは私が何かを逃したということですか?または私はそれを見つけるために他の方法を使用する必要がありますか?

ここでエラー:

エラー: シンボルが見つかりません if( record[ mid ].compareTo( x ) < 0 ) ^ シンボル: メソッド compareTo(String)

エラー: シンボルが見つかりません if( record[ mid ].compareTo( x ) > 0 ) ^ シンボル: メソッド compareTo(String)

4

2 に答える 2

1

Wellrecordは 2D 配列なのでrecord[j]、文字列ではなく配列になります。代わりに 1D 配列を使用するつもりでしたか?

于 2012-04-26T00:20:53.263 に答える
1

使用している「String[][]」は 2D レコードを意味します。したがって、record[j] は、対応する j 列の文字列配列を提供します。文字列と比較することはできません。したがって、1d レコードの場合は「String[] レコード」を使用します。

于 2012-04-26T00:28:21.840 に答える