コンピュータプログラミングにおいて、トリミング( trim ) またはストリッピング( strip ) は、文字列の先頭と末尾の空白を削除する文字列操作です。
たとえば、文字列(アポストロフィで囲まれている)
「これはテストです」
トリミング後、次のように変更されます
「これはテストです」
バリエーション
左または右のトリミング
最も一般的なtrim関数のバリエーションは、文字列の先頭または末尾のみを削除します。通常はそれぞれltrimとrtrim、Pythonの場合はlstripとrstripと呼ばれます。C#ではTrimStartとTrimEnd、Common Lispではstring-left-trimとstring-right-trimが使用されます。PascalとJavaにはこれらのバリエーションが組み込まれていませんが、Object Pascal(Delphi)にはTrimLeft関数とTrimRight関数があります。[1]
空白文字リストのパラメータ化
多くのトリム関数には、デフォルトの空白文字の代わりに、トリムする文字のリストを指定するためのオプションのパラメータがあります。たとえば、PHP と Python ではこのオプションのパラメータが許可されますが、Pascal と Java では許可されません。Common Lisp のstring-trim関数では、パラメータ ( character-bagと呼ばれる) が必須です。C++ Boost ライブラリは、ロケールに応じてスペース文字を定義し、トリムする文字を選択するための述語パラメータ (関数)を持つバリアントも提供します。
特別な空文字列の戻り値
trim の珍しいバリエーションは、トリム操作後に文字が残っていない場合に特別な結果を返します。たとえば、Apache JakartaのStringUtils には、空の文字列の代わりに
stripToNullを返すという関数があります。null
空間正規化
スペース正規化は、周囲の空白を削除するだけでなく、文字列内の空白文字のシーケンスを1つのスペースに置き換えるという、関連する文字列操作です。スペース正規化は、スプレッドシートアプリケーション( Excel、Calc、Gnumeric、Google DocsTrim()など)の関数、およびXSLTとXPathの関数によって実行されます。
normalize-space()
インプレーストリミング
ほとんどのアルゴリズムは新しい(トリミングされた)文字列を返しますが、一部のアルゴリズムは元の文字列をその場で変更します。特に、Boost ライブラリでは、その場でのトリミングまたはトリミングされたコピーのいずれかを返すことができます。
空白の定義
空白文字とみなされる文字は、プログラミング言語や実装によって異なります。たとえば、C では伝統的にスペース、タブ、改行、復帰文字のみがカウントされますが、Unicode をサポートする言語では通常、すべての Unicode スペース文字が含まれます。実装によっては、空白文字とともに ASCII制御コード (印刷されない文字)も含まれることがあります。
Javaのトリム方式では、ASCIIスペースと制御コードを空白文字として扱いますが、これはすべてのUnicodeスペース文字を認識するJavaisWhitespace()方式[2]とは対照的です。
Delphi の Trim 関数は、文字 U+0000 (NULL) から U+0020 (SPACE) までを空白文字とみなします。
スペース以外の空白
点字パターンのUnicode ブロックには、点が浮き出ていない点字パターンであるU+2800 ⠀ BRAILLE PATTERN BLANK が含まれています。Unicode 標準では、これがスペースとして機能しないことが明示的に規定されています。
ノーブレークスペース U+00A0 NO-BREAK SPACE ( , ) も、トリミングの目的で非スペースとして扱うことができます。
使用法
参考文献
- ^ “Trim”. Freepascal.org. 2013-02-02 . 2013-08-24閲覧。
- ^ 「Character (Java 2 Platform SE 5.0)」。Java.sun.com 。 2013年8月24日閲覧。
外部リンク
- Tcl: 文字列トリム
- より高速なJavaScriptトリム - さまざまなJavaScriptトリムの実装を比較します
- PHP 文字列のカットとトリミング - PHP 文字列のカットとトリミング
