web-dev-qa-db-ja.com

C#Trim()vs replace()

C#stringでは、文字列内の" "string.emptyに置き換えたい場合、stringValue.Trim()またはstringValue.replace(" ", string.empty)を使用しても問題ありません。両方とも同じ目的を果たします。しかし、どちらが良いですか?

14
SARAVAN

Trim()Replace()は同じ目的を果たしません。

Trim()は、文字列の先頭と末尾からすべての空白文字を削除します。つまり、spacestabs、_new lines_、returns、およびその他の各種の空白文字を意味します。

Replace()は、指定された文字のみを指定の置換に置き換えます。したがって、Replace(" ", string.empty)はスペースのみを空の文字列に置き換えます。また、Replace()は、指定された文字列の最初と最後のインスタンスだけでなく、指定された文字列のすべてのインスタンスを指定の置換に置き換えます。

38
Nick Zimmerman

String.Replaceはすべての(そして唯一の)スペース文字を削除し、String.Trimは、文字列の中間部分ではなく、文字列の先頭と末尾からすべての空白文字を削除します。

var tmp = "  hello world  \t";
var res1 = tmp.Trim(); // "hello world"
var res2 = tmp.Replace(" ", String.Empty); // "helloworld\t"
13
Nemanja Boric

トリムは、文字列の先頭および/または末尾からのみ空白文字と非空白文字を削除できます。 Replaceは、文字列内の任意の場所から部分文字列を削除できます。

例:

_Console.WriteLine("{{Hello World!:)".Trim('{',':',')'));  //output: Hello World
Console.WriteLine("{{Hello%World!:)".Trim('{', '%', ':',')'));  //output: Hello%World

Console.WriteLine("{{Hello World!:)".Replace("{{", string.Empty)
                                    .Replace(":)",string.Empty));  //output: Hello World

Console.WriteLine("{{Hello%World!:)".Replace("{{", string.Empty)
                                    .Replace("%", string.Empty)
                                    .Replace(":)",string.Empty));  //output: Hello World
_

TL; DR:文字列の先頭または末尾から1文字だけを削除する場合は、Trim()を使用します。それ以外の場合は、Replace()を呼び出します。

2
1_bug
char [] chartrim={'*'};
string name=Console.ReadLine(); //input be *** abcd **
string result= name.Trim(chartrim);
Console.WriteLine(result);

この場合、出力はabcdになります。トリムは、文字列の先頭と末尾から削除する空白または記号のみを削除します。

しかし、string.Replace()の場合は、exに置き換えたい文字列を置き換えます。

string name=Console.ReadLine(); //input be mahtab alam
string str2="khan";
string result= name.Replace("alam",str2);
Console.WriteLine(result);

この場合、o/pはmahtab khan

文字列間のスペースを削除する場合(この場合、出力はmahtabalamになります)

string name=Console.ReadLine(); //input be mahtab alam
string result= name.Replace(" ",string.Empty);
Console.WriteLine(result)
1
Mahtab Alam

String.Trim()は、先頭と末尾のスペースのみを削除します。そのため、目的にはString.Replace()を使用する必要があります。

0
Forte L.

トリムは先頭と末尾の空白を削除しますが、置換は文字列データを変更します。あるサブストリングのすべての出現を別のサブストリングに変更します。また、文字の置換も処理します。

0
DotNetUser

Replaceは、文字列内の任意の場所で置き換えます。トリムは、文字列の先頭と末尾から空白のみをトリミングします。

0
Joe

nick Zimmermanが言ったように、Trim()は文字列の最初と最後からすべての空白文字を削除します。ただし、別の方法で使用することもできます。

Trim(char [] trimChars)は、パラメーターとして渡された配列で指定された文字セットの先頭および末尾の出現をすべて削除します。

MSDNを確認

0
MSTr