文字列が空かどうかを取得するには (isEmpty)

文字列の長さが0かどうかを判定する方法の、プログラミング言語別のメモ。

Java

if (str.isEmpty()) {
    System.out.println("Empty!");
}

Scala

if (str.isEmpty) {
  println("Empty!");
}

PHP

if (strlen($str) === 0) {
    echo "Empty!\n");
}

Python

if not str:
    print("Empty!")

Ruby

if str.empty?
  puts("Empty!")
end

Perl

if ($str eq '') {
    print("Empty!\n");
}

sh

if [ -z "$STR" ]; then
    echo "Empty!"
fi

Java / Scala

Javaでの例

if (str.isEmpty()) {
  ...;
}

Scalaでの例

if (str.isEmpty) {
  ...;
}

Signature:

boolean java.lang.String#isEmpty()

java.lang.String#isEmpty | Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#isEmpty–

PHP

if (strlen($str) === 0) {
  ...;
}

または

if (empty($str)) {
  ...;
}

empty関数は空文字列 "" だけでなく "0" に対しても empty という判定をしてしまう問題がある。

empty関数に変数でないもの(リテラルや関数の返り値など)を渡すと、PHP5.4以前だと以下のようにエラーになってしまう。

var_export(empty(""));
// PHP Parse error:  syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

function f() {
  return "";
}
var_export(empty(f()));
// PHP Fatal error:  Can't use function return value in write context

empty関数は配列にも使える。

Python

if not str:
    ...

条件式の中に文字列を入れると空文字列だけが False の扱いになるためこの書き方ができる。 -> 論理値への変換

Ruby / JRuby

if str.empty?
  ...
end

Perl

if ($str eq '') {
    ...;
}

sh (シェルスクリプト)

if [ -z "$STR" ]; then
    ...
fi

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

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