こんにちは、さるまりんです。
前回に引き続きプログラミングのお話です。
startsWith
がPHP
にない!って話でそれを実装しました。
ではそれと対となる機能も欲しいですね。
endsWith
です。
endsWith
文字列が特定の文字列で終わるかを調べる方法です。
実装はこんな感じ。
/**
* 文字列$haystackは$needleで終わる?
*/
public static function ends_with($haystack, $needle) {
return $needle === ""
|| substr($haystack, -strlen($needle)) === $needle;
}
使っているsubstr()
ですが、2つ目の引数を負の数で指定すると、1つ目の引数で指定した文字列の後ろから何文字目からと言う部分文字列を取り出してくれます。
例えば
substr("I want you!", -4)
とすると"you!"
を取り出します。
長さも指定できます。
substr("I want you!", -4, 3)
とすると"you"
を取り出します。
このやり方で$haystack
の後ろから$needle
の長さ分の部分文字列を取り出して、それが$needle
と一致するかを調べるやり方でendsWith
を実現しています。
もっといいやり方があるのかもしれませんが、結構シンプルで気に入っています。
あー、正規表現、勉強しないとなぁ。
と言うわけで、endsWith
の実装でした。
読んでくださってありがとうございます。
ではまた!