|
.NET TIPS
文字列の前後にある余分な空白文字を取り除くには?
デジタルアドバンテージ
2004/07/23 |
|
|
テキストボックスなどでユーザーから入力を受け取るとき、入力されたキーワードの前後に余分な空白文字(スペース)が含まれてしまう場合がある。また、文字列を個々の単語に分割したときには、単語の前後に余分な区切り文字が含まれてしまう場合がある。
このような文字列の前後に含まれている余分な空白文字や特定の文字は、Stringクラス(System名前空間)のTrimメソッドを使用して簡単に取り除くことができる。
文字列の前後の空白文字を取り除くには、次のようにして、文字列に対してTrimメソッドをパラメータなしで呼び出せばよい。この場合には、全角および半角の空白文字が取り除かれる。
Dim input As String = " 入力文字列 "
Dim output As String = input.Trim()
文字列の前後にある特定の文字を取り除く場合には、パラメータに文字の配列を指定するバージョンのTrimメソッドを使用する(このパラメータは可変長パラメータである。可変長パラメータを指定するメソッドの呼び出しについては「TIPS:メソッドに可変長パラメータを渡すには?」を参考にしていただきたい)。
Dim input As String = ", 分割文字列,"
Dim output As String = input.Trim(" ", ",")
次にTrimメソッドを使用した簡単なサンプル・プログラムを示す。
// trim.cs
using System;
class TrimSample {
static void Main() {
string str1 = " 前後に 半角 スペース ";
string str2 = " 前後に 全角 スペース ";
string str3 = " "; // スペースのみ
Console.WriteLine("[{0}]", str1.Trim());
// 出力:[前後に 半角 スペース]
Console.WriteLine("[{0}]", str2.Trim());
// 出力:[前後に 全角 スペース]
Console.WriteLine("[{0}]", str3.Trim());
// 出力:[]
string str4 = ", ; :前後に区切り文字, ; :";
Console.WriteLine("[{0}]", str4.Trim(' ', ',', ';', ':'));
// 出力:[前後に区切り文字]
}
}
// コンパイル方法:csc trim.cs
|
|
Trimメソッドを使用したC#のサンプル・プログラム(trim.cs) |
|
' trim.vb
Imports System
Class TrimSample
Shared Sub Main()
Dim str1 As String = " 前後に 半角 スペース "
Dim str2 As String = " 前後に 全角 スペース "
Dim str3 As String = " " ' スペースのみ
Console.WriteLine("[{0}]", str1.Trim())
' 出力:[前後に 半角 スペース]
Console.WriteLine("[{0}]", str2.Trim())
' 出力:[前後に 全角 スペース]
Console.WriteLine("[{0}]", str3.Trim())
' 出力:[]
Dim str4 As String = ", ; :前後に区切り文字, ; :"
Console.WriteLine("[{0}]", str4.Trim(" ", ",", ";", ":"))
' 出力:[前後に区切り文字]
End Sub
End Class
' コンパイル方法:vbc trim.vb
|
|
Trimメソッドを使用したVB.NETのサンプル・プログラム(trim.vb) |
|
Stringクラスには、Trimメソッドのほかに、指定した特定の文字列を文字列の先頭からのみ取り除くTrimStartメソッド、文字列の末尾からのみ取り除くTrimEndメソッドも用意されている。これら2つのメソッドで空白文字を取り除くには、パラメータにNothing(VB.NETの場合。C#の場合にはnull)を指定する。
また、VB.NETには以前のバージョンとの互換性のためにTrim、TrimStart、TrimEndと同じ処理を行うTrim関数、LTrim関数、RTrim関数が用意されているが、これらの関数は空白文字だけしか取り除くことができない。
カテゴリ:クラス・ライブラリ 処理対象:文字列
使用ライブラリ:Stringクラス(System名前空間) |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間