8

私のプログラムでは、次のような if 条件でchar 配列asterixA[]を Stringと比較しようとしています。word

if (word.equals(asterixA))

しかし、それは私にエラーを与えています。それらを比較する他の方法はありますか?

4

4 に答える 4

17

文字配列を文字列または文字列から文字配列に変換してから、比較を行う必要があります。

if (word.equals(new String(asterixA)))

また

if(Arrays.equals(word.toCharArray(), asterixA))

ところで。if は条件文であり、ループではありません

于 2013-01-10T18:30:08.640 に答える
1

「文字列は文字の配列です」という行を文字通りに解釈しすぎているようです。Stringequalsメソッドは次のように述べています

この文字列を指定されたオブジェクトと比較します。結果は、引数がnullでなく、このオブジェクトと同じ文字シーケンスを表すStringオブジェクトである場合にのみtrueになります。

すべて状況によって異なりますが、通常、同じタイプの2つのオブジェクト、または同じ階層に属する2つのオブジェクト(共通のスーパークラスを共有する)を比較します。

この場合、aStringはではありませんが、Javaは、を使用して変換を実行するか、をパラメーターとしてコンストラクターに渡すことによって変換をchar[]行うことにより、一方から他方に移動するメカニズムを提供します。String -> char[]String#toCharArray()char[] -> Stringchar[]String

Stringこのようにして、自分をchar[]またはその逆に変えた後、両方のオブジェクトを比較できます。

于 2013-01-10T18:36:19.907 に答える
0

配列を比較できます。

if (Arrays.equals(asterixA, word.toCharArray()) {}
于 2013-01-10T18:33:53.640 に答える
0

次のようにします。if (word.equals(new String(asterixA))) { ... }

于 2013-01-10T18:31:36.347 に答える