文字列が特定の文字や文字列で始まっているかどうかを判定するには (start_with? / startsWith) 2015/04/18
if (str.startsWith(prefix)) {
System.out.println("Match!");
} else {
System.out.println("Unmatch!");
}
if (str.startsWith(prefix)) {
println("Match!");
} else {
println("Unmatch!");
}
if (substr($str, 0, strlen($prefix)) === $prefix) {
// Match
}
if str.startswith(prefix):
print("Match!")
else:
print("Unmatch!")
if str.start_with?(prefix)
puts "Match!"
else
puts "Unmatch!"
end
if ($str =~ ('\A' . quotemeta($prefix))) {
print "Match!";
} else {
print "Unmatch!";
}
関連
Java / Scala 2015/04/18
Signature:
boolean java.lang.String#startsWith(String prefix)
boolean java.lang.String#startsWith(String prefix, int offset)
java.lang.String#startsWith
| Java Platform SE 8 Javadoc
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#startsWith-java.lang.String-
http://docs.oracle.com/javase/8/docs/api/java/lang/String.html#startsWith-java.lang.String-int-
PHP 2015/04/18
これを簡単にやる関数はないようなので、例えば以下のようにする。
if (substr($str, 0, strlen($prefix)) === $prefix) {
// Match
}
または以下のような関数を作る。
function startsWith($str, $prefix) {
return substr($str, 0, strlen($prefix)) === $prefix;
}
strpos($str, $prefix) === 0
だと $str
が長い文字列の場合に、走査処理が無駄になってしまう。
Python 2015/04/18
文字列にある startswith
メソッドを使う。
例
str = "abcabc"
print str.startswith("ab")
# => True
print str.startswith("bc")
# => False
string.startswith
| Python 2.7 documentation
http://docs.python.jp/2/library/stdtypes.html#str.startswith
string.startswith
| Python 3 documentation
http://docs.python.jp/3/library/stdtypes.html#str.startswith
Ruby / JRuby 2015/04/18
文字列にある start_with?
メソッドを使う。
str.start_with?(prefix)
Perl 2014/12/24
文字列の先頭にマッチする正規表現の \A
を使う。
print "abc" =~ /\Aab/; # => 1
prefixが変数の場合は以下のようにするとできる。
if ($str =~ ('\A' . quotemeta($prefix))) {
print "match\n";
} else {
print "unmatch\n";
}
上記例のように正規表現全体を ()
で囲む必要があり、囲まないと =~
のほうが先に結合してしまって、常にmatchしてしまう。
JavaScript 2013/04/10
よく使う方法。
str.indexOf(prefix) == 0
ただ、これだと、str
が長い文字列の時にいちいちstr
の最後までなめるのが効率よくなさそう。