【发布时间】:2021-10-06 09:57:49
【问题描述】:
我正在尝试将“文本”写入文件
private void WriteToLogs(string text)
{
File.AppendAllText(todayMessageLog, $"({DateTime.Now}) Server Page: \"{text.Trim()}\"\n");
}
文本如下: “文本(一堆空白)”
文本字符串由以下部分组成:
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 类,NewClientIP 和 NewClientUsername 是该类中的属性
如您所见,我尝试在字符串本身和方法上同时使用 Trim 和 Replace,但没有任何内容可以删除空格。
【问题讨论】:
-
文本如下:“文本(一堆空白)” - 你能提供空白的准确表示吗?不是它是如何打印的,而是它是由什么字符组成的。
-
我无法在我的帖子中提供它,因为 stackoverflow 会修剪文本,但我想我可以解释一下,它显示为:(2021 年 7 月 31 日上午 1:15:16)服务器页面:“ soxketsUser: sfa "(如果看不到空格,"sfa"后面有48个空格)
-
我问是因为您说替换空格的代码“不起作用”。在我看来,有两种可能性 - 代码实际上没有被调用(这似乎与您的问题代码不同。y)或空白实际上不是“空格”。您可以创建一个最小的代码示例来重现该问题吗?如果 SO 上的代码格式不允许这样做,您可以链接到外部代码站点,例如 dotnetfiddle.net
-
尝试使用类似
BitConverter.ToString(System.Text.Encoding.UTF8.GetBytes(text))的内容打印结果。空字符很可能不是空格(将显示为 20-20-20-...),而是其他字符。 -
@demented Just Trim()/Replace() with '\0', '\x00', "\0" etc.
标签: c# string whitespace trim removing-whitespace