私のプログラムでは、次のような if 条件でchar 配列asterixA[]
を Stringと比較しようとしています。word
if (word.equals(asterixA))
しかし、それは私にエラーを与えています。それらを比較する他の方法はありますか?
文字配列を文字列または文字列から文字配列に変換してから、比較を行う必要があります。
if (word.equals(new String(asterixA)))
また
if(Arrays.equals(word.toCharArray(), asterixA))
ところで。if は条件文であり、ループではありません
「文字列は文字の配列です」という行を文字通りに解釈しすぎているようです。String
のequals
メソッドは次のように述べています
この文字列を指定されたオブジェクトと比較します。結果は、引数がnullでなく、このオブジェクトと同じ文字シーケンスを表すStringオブジェクトである場合にのみtrueになります。
すべて状況によって異なりますが、通常、同じタイプの2つのオブジェクト、または同じ階層に属する2つのオブジェクト(共通のスーパークラスを共有する)を比較します。
この場合、aString
はではありませんが、Javaは、を使用して変換を実行するか、をパラメーターとしてコンストラクターに渡すことによって変換をchar[]
行うことにより、一方から他方に移動するメカニズムを提供します。String -> char[]
String#toCharArray()
char[] -> String
char[]
String
String
このようにして、自分をchar[]
またはその逆に変えた後、両方のオブジェクトを比較できます。
配列を比較できます。
if (Arrays.equals(asterixA, word.toCharArray()) {}
次のようにします。if (word.equals(new String(asterixA))) { ... }