文字列の比較はどの言語でもよく使用されますが、言語によって比較の方法は違います。
また、比較の方法が複数パターンあり、パフォーマンスなども気になるところです。
Javaの場合
例えば Java の場合、String の文字列比較は equals() や compareTo() メソッドを使います。
個人的には戻り値が boolean の equals() の方が好みですが・・・。
インスタンスの場合は == で比較ができますが、基本は equals() や compareTo() メソッドを使うべきでしょう。
PHPの場合
PHP の場合は、== で比較をしているソースをよく見かけますが、これは一般的にはタブーで、strcmp() 関数か === の型を考慮した判定が理想です。
そもそも型の概念が表面上はないスクリプト言語なので、そこを意識しておかないと厄介です。
C#の場合
C# も Java と同じく Equals() や CompareTo() メソッドで判定するのが一般的かと思っていたのですが、思わぬ落とし穴があることが判明しました。
結果的には、C# の文字列比較は == を使うべきということです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [Java] String s1 = "1"; String s2 = "2"; if (s1.equals(s2)) { // 一致 } [PHP] $s1 = "1"; $s2 = "2"; if (strcmp($s1, $s2)) { // 一致 } [C#] string s1 = "1"; string s2 = "2"; if (s1 == s2) { // 一致 } |
詳しくは下記のサイトで確認して下さい。