文字列の長さを求める

Elixir:
文字列の長さを求める

How to: (方法)

Elixirで文字列の長さを見つけるにはString.length/1関数を使います。Unicode文字列にも対応しています。

# 文字列の長さを取得
string = "こんにちは"
length = String.length(string)
IO.puts(length)  # 出力: 5

短いサンプルながら、以上が全てです。

Deep Dive (探求)

長年、文字列の長さを調べることは、多くのプログラミング言語の基本機能でした。Elixirでは、文字列はUTF-8でエンコードされており、String.length/1は正確な文字単位での長さを返します。

古い言語では、ASCII文字のみを扱ったため、文字数はバイト数と等しかった。しかし、全角文字や絵文字など、複数のバイトが必要なUnicode文字には、String.length/1が便利。

他の手段としては、バイナリ表現のバイトサイズを測るbyte_size/1がありますが、通常は文字列の実際の長さを得たい場合には使われません。

# バイトサイズを測る
byte_size = byte_size(string)
IO.puts(byte_size)  # 出力: 15

上記の場合、“こんにちは"は15バイトですが、5文字です。

See Also (参照)