2つの文字列を比較するには (equals / strcasecmp / strcmp / == / != / < / <= / >= / > / <=> / gt / ge / lt / le)
Go言語 (golang) 2015/08/05
string型や[]byte型の値は==演算子で比較する。等値の場合に true になり、そうでない場合に false になる。
Java 2015/02/12
equalsメソッドで比較する。等値の場合に true になり、そうでない場合に false になる。例: obj1.equals(obj2)
== は同じインスタンスかどうかをチェックするもので、たとえ同じ内容の文字列でも == が false を返す場合もある。
Scala 2015/02/12
==演算子で比較する。等値の場合に true になり、そうでない場合に false になる。!=演算子はその反対。
Scalaの==演算子はJavaのequalsメソッドを呼び出している。
Groovy 2014/11/21
==演算子で比較し、等値の場合に true を返す。!=演算子のはその反対。
==演算子はJavaの equals を呼び出している。
<, <=, >=, >, <=> で文字列の辞書順の比較ができる。
<=> は数値の比較と同じで、大小関係によって -1, 0, +1 のいずれかを返す。
PHP 2015/04/02
== は等値の場合に true を返す。 != はその反対。
strcmp関数で文字列の辞書順の比較ができる。
$cmp = strcmp($str1, $str2);
if ($cmp < 0) {
// $str1 が $str2 よりも辞書順で前に来る場合の処理
} else if ($cmp > 0) {
// $str1 が $str2 よりも辞書順で後に来る場合の処理
} else {
// $str1 と $str2 が等しい場合の処理
}
大文字と小文字を区別せずに比較するには strcasecmp を使う。
if (strcasecmp($str1, $str2) === 0) {
// $str1 と $str2 が等しい場合の処理
}
<, <=, >, >= は文字列の比較ではなく数値に変換しての比較になる。
-> 数値の比較
strcmp 関数 | PHP Manual
http://php.net/manual/ja/function.strcmp.php
strcasecmp 関数 | PHP Manual
http://php.net/manual/ja/function.strcasecmp.php
Python 2014/01/23
== は等値の場合に True を返す。 != はその反対。
Ruby 2013/10/16
== は等値の場合に true を返す。 != はその反対。
<, <=, >=, >, <=> で文字列の辞書順の比較ができる。
<=> は数値の比較と同じで、大小関係によって -1, 0, +1 のいずれかを返す。
Perl 2017/01/15
eq は等値の場合に '1' を返し、そうでない場合は、 '' を返す。 ne はその反対。
print "abc" eq "abc"; # => 1
print "abc" ne "abc"; # => ''
if文の条件式に入れると、 '1' は真、 '' は偽の扱いになる。
if ("abc" eq "abc") {
...;
}
undef と '' を eq で比較すると Use of uninitialized value という警告が出るが、等値との判定はされる。
gt, ge, lt, le で文字列の辞書順の比較ができる。
print "abc" ge "def"; # => ''
print "abc" lt "def"; # => 1
cmp はRubyの <=> と同じで、文字列の辞書順の関係によって -1, 0, +1 のいずれかを返す。
print ("abc" cmp "def"); # => -1
print ("abc" cmp "DEF"); # => 1
print ("def" cmp "def"); # => 0
print ("xyz" cmp "def"); # => 1
== や <, <=> などは数値として比較してしまうので注意。
print "2" <=> "12"; # => -1
print "2" cmp "12"; # => 1
正規表現とのマッチングができる =~ や !~ という演算子もある。
sh (シェルスクリプト) 2013/09/25
test コマンドの =, != 演算子で文字列の比較ができる。
test コマンドの -eq, -ne 演算子は数値として比較するで、Perlとは逆。
-> シェルスクリプトの演算子