Trim() 和 Replace(" ", "") 在 C# 中不删除白色 space
Trim() and Replace(" ", "") not removing white space in C#
我正在尝试将“文本”写入文件
private void WriteToLogs(string text)
{
File.AppendAllText(todayMessageLog, $"({DateTime.Now}) Server Page: \"{text.Trim()}\"\n");
}
文字是这样的:
“文字(一串白色space)”
文本字符串由以下组成:
string username = e.NewClientUsername.Trim().Replace(" ", "");
string ip = e.NewClientIP.Trim().Replace(" ", "");
WriteToLogs($"{username.Trim().Replace(" ", "")} ({ip.Trim().Replace(" ", "")}) connected"); // NONE OF THESE WORKED FOR REMOVING THE WHITE SPACE
“e”参数来自另一个名称的自定义 EventArgs classspace,NewClientIP 和 NewClientUsername 是 class
中的属性
如您所见,我尝试在字符串本身和方法上同时使用 Trim 和 Replace,但没有删除白色 space.
我希望这对你有用
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
//This is your text
string input = "This is text with far too much "+
"This is text with far too much "+
"This is text with far too much ";
//This is the Regex
string pattern = "\s";
//Value with the replace
string replacement = "";
//Replace
string result = Regex.Replace(input, pattern, replacement);
//Result
Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
}
}
如果 Trim()
和 Replace()
方法不起作用,则字符串可能没有用 SPACE 或 TAB 等通常的白色 space 字符填充,但是别的东西。还有很多其他字符可以显示为空白。
尝试使用类似 BitConverter.ToString(Text.Encoding.UTF8.GetBytes(text))
的方式打印结果。空格会显示为 20-20-20-...,但您可能会得到其他内容。
The white space shows up as 00, not 20, how can I remove it?
很好。使用 Trim()
方法的参数,如下所示:
var text = "Blah[=10=][=10=][=10=][=10=]";
text.Length → 8
text.Trim('[=10=]').Length → 4
如果你想trim白spaces(不仅' '
,还有\t
,\U00A0
等)以及[=16=]
(也就是不是白space),可以试试正则表达式 :
using System.Text.RegularExpressions;
...
// Trim whitespaces and [=10=]
string result = Regex.Replace(input, @"(^[\s[=10=]]+)|([\s[=10=]]+$)", "");
供参考
// Trim start whitespaces and [=11=]
string resultStart = Regex.Replace(input, @"^[\s[=11=]]+", "");
// Trim end whitespaces and [=11=]
string resultEnd = Regex.Replace(input, @"[\s[=11=]]+$", "");
相同的想法(正则表达式),但如果你不想 trim 但 remove white spaces 和 [=16=]
:
string result = Regex.Replace(input, @"[\s[=12=]]+", "");
我正在尝试将“文本”写入文件
private void WriteToLogs(string text)
{
File.AppendAllText(todayMessageLog, $"({DateTime.Now}) Server Page: \"{text.Trim()}\"\n");
}
文字是这样的: “文字(一串白色space)”
文本字符串由以下组成:
string username = e.NewClientUsername.Trim().Replace(" ", "");
string ip = e.NewClientIP.Trim().Replace(" ", "");
WriteToLogs($"{username.Trim().Replace(" ", "")} ({ip.Trim().Replace(" ", "")}) connected"); // NONE OF THESE WORKED FOR REMOVING THE WHITE SPACE
“e”参数来自另一个名称的自定义 EventArgs classspace,NewClientIP 和 NewClientUsername 是 class
中的属性如您所见,我尝试在字符串本身和方法上同时使用 Trim 和 Replace,但没有删除白色 space.
我希望这对你有用
using System;
using System.Text.RegularExpressions;
public class Program
{
public static void Main()
{
//This is your text
string input = "This is text with far too much "+
"This is text with far too much "+
"This is text with far too much ";
//This is the Regex
string pattern = "\s";
//Value with the replace
string replacement = "";
//Replace
string result = Regex.Replace(input, pattern, replacement);
//Result
Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
}
}
如果 Trim()
和 Replace()
方法不起作用,则字符串可能没有用 SPACE 或 TAB 等通常的白色 space 字符填充,但是别的东西。还有很多其他字符可以显示为空白。
尝试使用类似 BitConverter.ToString(Text.Encoding.UTF8.GetBytes(text))
的方式打印结果。空格会显示为 20-20-20-...,但您可能会得到其他内容。
The white space shows up as 00, not 20, how can I remove it?
很好。使用 Trim()
方法的参数,如下所示:
var text = "Blah[=10=][=10=][=10=][=10=]";
text.Length → 8
text.Trim('[=10=]').Length → 4
如果你想trim白spaces(不仅' '
,还有\t
,\U00A0
等)以及[=16=]
(也就是不是白space),可以试试正则表达式 :
using System.Text.RegularExpressions;
...
// Trim whitespaces and [=10=]
string result = Regex.Replace(input, @"(^[\s[=10=]]+)|([\s[=10=]]+$)", "");
供参考
// Trim start whitespaces and [=11=]
string resultStart = Regex.Replace(input, @"^[\s[=11=]]+", "");
// Trim end whitespaces and [=11=]
string resultEnd = Regex.Replace(input, @"[\s[=11=]]+$", "");
相同的想法(正则表达式),但如果你不想 trim 但 remove white spaces 和 [=16=]
:
string result = Regex.Replace(input, @"[\s[=12=]]+", "");