文を個々の単語に解析する場合は、単語の両端に空白 (空白とも呼ばれます) がある単語になる可能性があります。 このような場合は、 System.String
クラスのいずれかの trim メソッドを使用して、文字列内の指定した位置から任意の数のスペースまたはその他の文字を削除できます。 次の表では、使用可能なトリミング方法について説明します。
メソッド名 | 用途 |
---|---|
String.Trim | 文字列の先頭と末尾から、文字の配列で指定された空白または文字を削除します。 |
String.TrimEnd | 文字列の末尾から文字の配列で指定された文字を削除します。 |
String.TrimStart | 文字列の先頭から文字の配列で指定された文字を削除します。 |
String.Remove | 文字列内の指定したインデックス位置から、指定した数の文字を削除します。 |
トリミング
次の例に示すように、 String.Trim メソッドを使用すると、文字列の両端から空白を簡単に削除できます。
string MyString = " Big ";
Console.WriteLine($"Hello{MyString}World!");
string TrimString = MyString.Trim();
Console.WriteLine($"Hello{TrimString}World!");
// The example displays the following output:
// Hello Big World!
// HelloBigWorld!
Dim MyString As String = " Big "
Console.WriteLine("Hello{0}World!", MyString)
Dim TrimString As String = MyString.Trim()
Console.WriteLine("Hello{0}World!", TrimString)
' The example displays the following output:
' Hello Big World!
' HelloBigWorld!
文字列の先頭と末尾から、文字配列で指定した文字を削除することもできます。 次の例では、空白文字、ピリオド、およびアスタリスクを削除します。
using System;
public class Example
{
public static void Main()
{
String header = "* A Short String. *";
Console.WriteLine(header);
Console.WriteLine(header.Trim( new Char[] { ' ', '*', '.' } ));
}
}
// The example displays the following output:
// * A Short String. *
// A Short String
Module Example
Public Sub Main()
Dim header As String = "* A Short String. *"
Console.WriteLine(header)
Console.WriteLine(header.Trim({" "c, "*"c, "."c}))
End Sub
End Module
' The example displays the following output:
' * A Short String. *
' A Short String
文字列末尾の空白を削除する (TrimEnd)
String.TrimEnd
メソッドは、文字列の末尾から文字を削除し、新しい文字列オブジェクトを作成します。 削除する文字を指定するために、このメソッドに文字の配列が渡されます。 文字配列内の要素の順序は、トリミング操作には影響しません。 トリミングは、配列で指定されていない文字が見つかると停止します。
次の例では、 TrimEnd
メソッドを使用して文字列の最後の文字を削除します。 この例では、配列内の文字の順序が重要でないことを示すために、 'r'
文字と 'W'
文字の位置が逆になります。 このコードは、 MyString
の最後の単語と最初の単語の一部を削除します。
string MyString = "Hello World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"r", "o", "W", "l", "d", "!", " "}
Dim NewString As String = MyString.TrimEnd(MyChar)
Console.WriteLine(NewString)
このコードは、コンソールに He
を表示します。
次の例では、 TrimEnd
メソッドを使用して文字列の最後の単語を削除します。 このコードでは、コンマは Hello
語の後に続き、トリミングする文字の配列にコンマが指定されていないため、トリミングはコンマで終わります。
string MyString = "Hello, World!";
char[] MyChar = {'r','o','W','l','d','!',' '};
string NewString = MyString.TrimEnd(MyChar);
Console.WriteLine(NewString);
Dim MyString As String = "Hello, World!"
Dim MyChar() As Char = {"r", "o", "W", "l", "d", "!", " "}
Dim NewString As String = MyString.TrimEnd(MyChar)
Console.WriteLine(NewString)
このコードは、コンソールに Hello,
を表示します。
トリムスタート
String.TrimStart
メソッドは、既存の文字列オブジェクトの先頭から文字を削除して新しい文字列を作成する点を除き、String.TrimEnd
メソッドに似ています。 削除する文字を指定するために、 TrimStart
メソッドに文字の配列が渡されます。
TrimEnd
メソッドと同様に、文字配列内の要素の順序はトリミング操作には影響しません。 トリミングは、配列で指定されていない文字が見つかると停止します。
次の例では、文字列の最初の単語を削除します。 この例では、配列内の文字の順序が重要でないことを示すために、 'l'
文字と 'H'
文字の位置が逆になります。
string MyString = "Hello World!";
char[] MyChar = {'e', 'H','l','o',' ' };
string NewString = MyString.TrimStart(MyChar);
Console.WriteLine(NewString);
Dim MyString As String = "Hello World!"
Dim MyChar() As Char = {"e", "H", "l", "o", " "}
Dim NewString As String = MyString.TrimStart(MyChar)
Console.WriteLine(NewString)
このコードは、コンソールに World!
を表示します。
[削除]
String.Remove メソッドは、既存の文字列内の指定した位置から始まる指定した文字数を削除します。 このメソッドは、0 から始まるインデックスを前提としています。
次の例では、文字列の 0 から始まるインデックスの位置 5 から 10 文字を削除します。
string MyString = "Hello Beautiful World!";
Console.WriteLine(MyString.Remove(5,10));
// The example displays the following output:
// Hello World!
Dim MyString As String = "Hello Beautiful World!"
Console.WriteLine(MyString.Remove(5, 10))
' The example displays the following output:
' Hello World!
取り替える
String.Replace(String, String) メソッドを呼び出し、置換として空の文字列 (String.Empty) を指定することで、指定した文字または部分文字列を文字列から削除することもできます。 次の例では、文字列からすべてのコンマを削除します。
using System;
public class Example
{
public static void Main()
{
String phrase = "a cold, dark night";
Console.WriteLine($"Before: {phrase}");
phrase = phrase.Replace(",", "");
Console.WriteLine($"After: {phrase}");
}
}
// The example displays the following output:
// Before: a cold, dark night
// After: a cold dark night
Module Example
Public Sub Main()
Dim phrase As String = "a cold, dark night"
Console.WriteLine("Before: {0}", phrase)
phrase = phrase.Replace(",", "")
Console.WriteLine("After: {0}", phrase)
End Sub
End Module
' The example displays the following output:
' Before: a cold, dark night
' After: a cold dark night
こちらも参照ください
.NET