文字列.length / size
| 対応: | Ruby 1.8(2003) |
|---|
文字列の長さ(文字数)を取得するメソッドです。『length』と『size』はどちらも同じ動作をします。
構文
# 文字列の長さ(文字数)を返します。 文字列.length 文字列.size # バイト数を返します。 文字列.bytesize # 空文字列かどうかを判定します。 文字列.empty?
メソッド一覧
| メソッド | 概要 |
|---|---|
| length | 文字列の文字数を整数で返します。マルチバイト文字も1文字として数えます。 |
| size | 『length』の別名です。同じ動作をします。 |
| bytesize | 文字列のバイト数を返します。UTF-8の日本語は1文字あたり3バイトとして計算されます。 |
| empty? | 文字列が空(長さ0)であれば『true』を、そうでなければ『false』を返します。 |
サンプルコード
sample_string_length_size.rb
# 半角英数字の文字数を取得します。
greeting = "Hello"
puts greeting.length # 5
puts greeting.size # 5(length と同じ)
# 日本語の文字数を取得します。
name = "綾波レイ"
puts name.length # 4
puts name.bytesize # 12(UTF-8では1文字3バイト)
# 空文字列の確認をします。
input = ""
if input.empty?
puts "入力値が空です。" # こちらが出力されます。
else
puts "入力値: #{input}"
end
# 文字数制限のバリデーションに活用できます。
username = "碇シンジ"
if username.length > 20
puts "ユーザー名は20文字以内で入力してください。"
else
puts "ユーザー名を受け付けました。" # こちらが出力されます。
end
ruby string_length_size.rb 5 5 4 12 入力値が空です。 ユーザー名を受け付けました。
概要
Rubyの『length』と『size』は文字列の文字数を返すメソッドです。どちらも同じ動作をするため、どちらを使っても構いません。マルチバイト文字(日本語など)も1文字として正しく数えられるため、PHPの『strlen()』のようにバイト数と文字数が混在する問題は発生しません。
バイト数が必要な場合は『bytesize』を使用してください。文字列が空かどうかを調べるには『empty?』が便利です。『length == 0』と書くよりも意図が明確になります。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。