C#Trim()vs replace()

时间:2013-09-19 18:44:31

标签: c# string replace trim

如果我们要将字符串中的string替换为" ",则在C#string.empty中,使用stringValue.Trim()stringValue.replace(" ", string.empty)是否可以。两者都有相同的目的。但哪一个更好?

8 个答案:

答案 0 :(得分:30)

Trim()Replace()不能达到同样的目的。

Trim()从字符串的开头和结尾删除所有空格字符。这意味着spacestabsnew linesreturns以及其他各种空白字符

Replace()仅用指定的替换替换指定的字符。所以Replace(" ", string.empty)只会用空字符串替换空格。 Replace()还用给定的替换替换指定字符串的所有实例,而不仅仅是字符串开头和结尾处的那些实例。

答案 1 :(得分:10)

String.Replace将删除所有(且仅限)空格字符,String.Trim将从字符串的开头和结尾删除所有空白字符,而不是中间字符。

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

答案 2 :(得分:1)

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

在这种情况下,输出将为abcd。修剪只删除你想要从字符串的开头和结尾修剪的空格或符号。

但是在string.Replace()的情况下,它将替换你想要替换的字符串 对于前。

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)

答案 3 :(得分:1)

Trim只能从字符串的开头和/或结尾消除空格和非空格字符。 替换可以从字符串中的任何位置删除子字符串。

示例:

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:如果要仅从字符串的开头或结尾删除单个字符,请使用Trim(),否则调用Replace()

答案 4 :(得分:0)

String.Trim()将仅删除前导和尾随空格。因此,您必须使用String.Replace()来达到目的。

答案 5 :(得分:0)

Trim消除了前导和尾随空格,而Replace则更改了字符串数据。它将所有出现的一个子字符串更改为另一个子字符串。它还处理字符替换。

答案 6 :(得分:0)

替换将在字符串中的任何位置替换它。修剪只会从字符串的开头和结尾修剪空白.....所以他们实际上做了不同的事情。

答案 7 :(得分:0)

作为Nick Zimmerman说Trim()从字符串的开头和结尾删除所有空白字符。但是你可以用不同的方式使用它:

修剪(char [] trimChars),删除作为参数传入的数组中指定的一组字符的所有前导和尾随出现。

Check MSDN