2つの文字列を比較するには (equals / strcasecmp / strcmp / == / != / < / <= / >= / > / <=> / gt / ge / lt / le)

Go言語 (golang)

string型や[]byte型の値は==演算子で比較する。等値の場合に true になり、そうでない場合に false になる。

Java

equalsメソッドで比較する。等値の場合に true になり、そうでない場合に false になる。例: obj1.equals(obj2)

== は同じインスタンスかどうかをチェックするもので、たとえ同じ内容の文字列でも ==false を返す場合もある。

Scala

==演算子で比較する。等値の場合に true になり、そうでない場合に false になる。!=演算子はその反対。 Scalaの==演算子はJavaのequalsメソッドを呼び出している。

Groovy

==演算子で比較し、等値の場合に true を返す。!=演算子のはその反対。 ==演算子はJavaの equals を呼び出している。

<, <=, >=, >, <=> で文字列の辞書順の比較ができる。 <=>数値の比較と同じで、大小関係によって -1, 0, +1 のいずれかを返す。

PHP

== は等値の場合に 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

== は等値の場合に True を返す。 != はその反対。

Ruby

== は等値の場合に true を返す。 != はその反対。

<, <=, >=, >, <=> で文字列の辞書順の比較ができる。

<=>数値の比較と同じで、大小関係によって -1, 0, +1 のいずれかを返す。

Perl

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 (シェルスクリプト)

test コマンドの =, != 演算子で文字列の比較ができる。 test コマンドの -eq, -ne 演算子は数値として比較するで、Perlとは逆。

-> シェルスクリプトの演算子

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク