在 C# 中,如果我们想要将字符串中的 " "
替换为 string.empty
,使用 stringValue.Trim()
或 stringValue.replace(" ", string.empty)
是否可以?两种方法都能达到同样的目的。但哪一种更好呢?
Trim()
和Replace()
的用途不同。
Trim()
从字符串的开头和结尾删除所有空白字符。这意味着空格
,制表符
,换行符
,回车
和其他各种空白字符都会被删除。
Replace()
仅将指定的字符替换为给定的替换字符。因此,Replace(" ", string.empty)
只会用空字符串替换空格。Replace()还会替换字符串中所有出现过的指定字符串为给定的替换字符,而不仅仅是在字符串的开头和结尾处。
String.Replace
函数将删除所有(且仅仅是)空格字符,而 String.Trim
函数将从字符串的开头和结尾删除所有空白字符,但不会删除中间的空白字符。
var tmp = " hello world \t";
var res1 = tmp.Trim(); // "hello world"
var res2 = tmp.Replace(" ", String.Empty); // "helloworld\t"
Trim可以从字符串的开头和/或结尾消除空格和非空格字符。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
简而言之:如果你想要删除字符串开头或/和结尾的单个字符,使用Trim()
;否则调用Replace()
。
char [] chartrim={'*'};
string name=Console.ReadLine(); //input be *** abcd **
string result= name.Trim(chartrim);
Console.WriteLine(result);
abcd
。Trim仅会从字符串开头和结尾删除空格或您想要删除的符号。string name=Console.ReadLine(); //input be mahtab alam
string str2="khan";
string result= name.Replace("alam",str2);
Console.WriteLine(result);
mahtab khan
。string name=Console.ReadLine(); //input be mahtab alam
string result= name.Replace(" ",string.Empty);
Console.WriteLine(result)
String.Trim()
只会删除前导和尾随空格。因此,您需要使用 String.Replace()
来实现您的目的。
Trim函数可以消除字符串前后的空格,而Replace函数则是用来改变字符串数据的。它可以将一个子字符串中的所有出现替换为另一个子字符串,同时还可以处理字符替换。
Replace会在字符串的任何位置进行替换。Trim只会从字符串的开头和结尾修剪空格.....所以它们实际上做的是不同的事情。
Trim()
方法从当前的字符串对象中移除所有前导和尾随的空白字符。详见 http://msdn.microsoft.com/zh-cn/library/system.string.trim.aspx。 - bzlmTrim(char[] trimChars)
,而Replace(" ","")
基本上是一个伪装的Trim
。 - Noctis