Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.length / size
文字列の長さ(文字数)を取得するメソッドです。『length』と『size』はどちらも同じ動作をします。
構文
# 文字列の長さ(文字数)を返します。 文字列.length 文字列.size # バイト数を返します。 文字列.bytesize # 空文字列かどうかを判定します。 文字列.empty?
メソッド一覧
| メソッド | 概要 |
|---|---|
| length | 文字列の文字数を整数で返します。マルチバイト文字も1文字として数えます。 |
| size | 『length』の別名です。同じ動作をします。 |
| bytesize | 文字列のバイト数を返します。UTF-8の日本語は1文字あたり3バイトとして計算されます。 |
| empty? | 文字列が空(長さ0)であれば『true』を、そうでなければ『false』を返します。 |
サンプルコード
# 半角英数字の文字数を取得します。
挨拶 = "Hello"
puts 挨拶.length # 5
puts 挨拶.size # 5(length と同じ)
# 日本語の文字数を取得します。
名前 = "山田太郎"
puts 名前.length # 4
puts 名前.bytesize # 12(UTF-8では1文字3バイト)
# 空文字列の確認をします。
入力値 = ""
if 入力値.empty?
puts "入力値が空です。" # こちらが出力されます。
else
puts "入力値: #{入力値}"
end
# 文字数制限のバリデーションに活用できます。
ユーザー名 = "田中一郎"
if ユーザー名.length > 20
puts "ユーザー名は20文字以内で入力してください。"
else
puts "ユーザー名を受け付けました。" # こちらが出力されます。
end
概要
Rubyの『length』と『size』は文字列の文字数を返すメソッドです。どちらも同じ動作をするため、どちらを使っても構いません。マルチバイト文字(日本語など)も1文字として正しく数えられるため、PHPの『strlen()』のようにバイト数と文字数が混在する問題は発生しません。
バイト数が必要な場合は『bytesize』を使用してください。文字列が空かどうかを調べるには『empty?』が便利です。『length == 0』と書くよりも意図が明確になります。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。