【Ruby3.x】StringScanner::size()メソッドの使い方
sizeメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
sizeメソッドは、StringScannerクラスのインスタンスがスキャン対象としている元の文字列全体のバイト単位の長さを取得するメソッドです。このメソッドは、StringScannerオブジェクトに設定された文字列の物理的なサイズを、整数値として返します。例えば、ファイルから読み込んだり、ネットワーク経由で受信したりした文字列データをStringScannerで解析する際に、その元データの全体のバイト数を把握したい場合に利用します。
StringScannerの内部ポインタが文字列内を移動していても、このsizeメソッドが返す値は常に初期設定された元の文字列全体のバイト長であり、現在のスキャン位置から残りの文字列の長さを返すわけではありません。Ruby 3におけるこのsizeメソッドは、スキャン対象の文字列に対してbytesizeメソッドを呼び出した場合と全く同じ結果を返します。
特に、日本語のようなマルチバイト文字を含む文字列を扱う場合、文字数とバイト数は異なります。例えば「あいう」という3文字の文字列は、UTF-8エンコーディングでは9バイトです。このsizeメソッドは9というバイト数を返します。これに対し、lengthメソッドやString#size(文字数を返す方)は3という文字数を返します。そのため、文字列のエンコーディングやメモリ使用量、通信量などを厳密に考慮した処理を行う際に、正確なバイトサイズを知るための重要な情報源となります。
構文(syntax)
1require 'strscan' 2 3scanner = StringScanner.new("Example String") 4puts scanner.size
引数(parameters)
引数なし
引数はありません
戻り値(return)
Integer
StringScannerオブジェクトが保持する文字列の長さを表す整数を返します。