当前位置:  开发笔记 > 编程语言 > 正文

从文本文件中读取一行会返回不需要的斜杠

如何解决《从文本文件中读取一行会返回不需要的斜杠》经验,为你挑选了1个好方法。

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

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

返回:"\"492200 \"NNNNNNNNNN

有什么建议?



1> Ron Beyer..:

字符串的调试视图会转义通常在代码中转义的内容.这意味着内联引号或实际引用等内容将使用a进行转义\(使引号看起来像\"单斜杠一样\\).

这些斜杠不在实际字符串中,它们仅在文本查看器中.您可以通过将字符串写出到控制台或调试输出来验证.你string.Replace没有工作,因为没有什么可以替代的.

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

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

    Console.WriteLine(s);

    Console.ReadKey(true);
}

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

缺少斜线

您还会注意到,该字符串也被引号括起来,并且不是原始字符串的一部分.单击小放大镜将显示"Text Visualizer",其中显示未转义的字符串:

文本展示台

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有