gpt4 book ai didi

c# - 从文本文件中读取一行返回不需要的斜线

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:22 25 4
gpt4 key购买 nike

我有一个应用程序可以读取数千行的文档。此文本文件中有一个特定的子字符串,有时以“12345”NNNNNNN 开头。问题是,每当 C# 读取该行时,它都会给我类似于“\12345\”NNNNNN 的内容。我已经尝试了 string.Replace(@"\", "") 扩展,但它仍然返回相同的值并且没有替换任何东西,这让我感到惊讶。这是代码:

 maskList.AccountMask = @line.Substring(156, 40);
maskList.AccountMask = maskList.AccountMask.Replace(@"\", "");

返回这个:"\"492200\"NNNNNNNNNN

有什么建议吗?

最佳答案

字符串的调试 View 转义了通常在代码中转义的内容。这意味着诸如内联引号或真正的\'s 之类的内容将使用 \ 进行转义(使引号看起来像 \" 而单斜线看起来像 \\).

这些斜杠不在实际的字符串中,它们只存在于文本查看器中。您可以通过将字符串写入控制台或调试输出来验证这一点。您的 string.Replace 不起作用,因为没有可替换的内容。

您可以使用一个非常小的控制台程序来验证这一点:

private static void Main(string[] args)
{
string s = ((char)34) + "492200" + ((char)34) + "NNNNNNNNN";

Console.WriteLine(s);

Console.ReadKey(true);
}

字符 34 是 " 字符,所以我在构造字符串时没有使用\'s 在代码中对它们进行转义。在 ReadKey 调用处设置断点并检查变量 s 显示 "\"492200\"NNNNNNNNN",但控制台打印出不带\'s 的字符串:

Missing Slashes

您还会注意到该字符串也被引号括起来,它们不是原始字符串的一部分。单击小放大镜将调出显示未转义字符串的“文本可视化工具”:

Text Visualizer

关于c# - 从文本文件中读取一行返回不需要的斜线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com