Delphi XE3の新機能TStringHelperを使ってみる

Delphi XE3では新機能TStringHelperによって、文字列がメソッドを持つようになりました。

//従来の書き方
S := UpperCase('Hello');
//TStringHelperによって可能になった書き方
S := 'Hello'.ToUpper;

コード補完もできるので、目的の処理を見つけるのが簡単になりました。

TStringHelperの入力補完

メソッド名はC++Builderとそろえているようなのでわかりやすいです。
ただし、C++BuilderのUnicodeStringクラスのすべてのメソッドが用意されているわけではありません。
また、TStringHelperにのみ存在するメソッドもあります。

C++BuilderのUnicodeStringクラスにはない便利なメソッドを試してみます。

TStringHelper.Trim

Trimは指定された文字を、文字列の前後から取り除きます。

S := 'AABBCC'.Trim(['A']);
Writeln(S); //=> BBCC

S := 'AABBCC'.Trim(['A', 'C']);
Writeln(S); //=> BB

S := 'AABBCC'.Trim(['A', 'B', 'C']);
Writeln(S); //=>

S := 'AABBCC'.Trim(['B']);
Writeln(S); //=> AABBCC

TStringHelper.TrimStart

TrimStartは指定された文字を、文字列の先頭から取り除きます。

S := 'AABBCC'.TrimStart(['A']);
Writeln(S); //=> ABBCC

S := 'AABBCC'.TrimStart(['A', 'B']);
Writeln(S); //=> BCC

S := 'AABBCC'.TrimStart(['A', 'B', 'C']);
Writeln(S); //=> C

一文字ずれているような気がしますが気のせいでしょうか…

追記:一文字ずれる問題はDelphi XE4で修正されました。

TStringHelper.TrimEnd

TrimEndは指定された文字を、文字列の末尾から取り除きます。

S := 'AABBCC'.TrimEnd(['C']);
Writeln(S); //=> AABB

S := 'AABBCC'.TrimEnd(['B', 'C']);
Writeln(S); //=> AA

S := 'AABBCC'.TrimEnd(['A', 'B', 'C']);
Writeln(S); //=>

TStringHelper.Split

Splitは指定した区切り文字で、文字列を分割します。

for s in '2012/12/17 10:31:52'.Split(['/',':',' ']) do
  WriteLn(S);
//=> 2012
//=> 12
//=> 17
//=> 10
//=> 31
//=> 52

TStringHelper.IndexOfAny

IndexOfAnyは指定された文字が、文字列内で最初に現れる場所を示す整数を返します。
文字列のインデックスは0から数えます。

P := 'This is a string.'.IndexOfAny(['w', 's', 'a']);
Writeln(P); //=> 3

TStringHelper.LastIndexOfAny

LastIndexOfAnyは指定された文字が、文字列内で最後に現れる場所を示す整数を返します。
文字列のインデックスは0から数えます。

P := 'This is a string.'.LastIndexOfAny(['w', 's', 'a']);
Writeln(P); //=> 10

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください