文字列の場合、==は参照のみを比較するため、比較には等号を使用する必要があります。
==とcharsを比較すると、期待される結果が得られますか?
私はstackoverflowで同様の質問を見てきました、例えば.
ただし、charsで==を使用することを尋ねるメッセージを見たことはありません。
はい、char
は他のプリミティブ型とまったく同じで、==
で比較できます。
Charを数値と直接比較して、計算で使用することもできます。例:
public class Test {
public static void main(String[] args) {
System.out.println((int) 'a'); // cast char to int
System.out.println('a' == 97); // char is automatically promoted to int
System.out.println('a' + 1); // char is automatically promoted to int
System.out.println((char) 98); // cast int to char
}
}
印刷されます:
97
true
98
b
はい、でもありません。
技術的には、==
は2つのint
sを比較します。したがって、次のようなコードで:
public static void main(String[] args) {
char a = 'c';
char b = 'd';
if (a == b) {
System.out.println("wtf?");
}
}
Javaは、行a == b
を(int) a == (int) b
に暗黙的に変換しています。
ただし、比較は依然として「機能」します。