当前位置: 首页 > 知识库问答 >
问题:

文本到字符串 [重复]

狄溪叠
2023-03-14

我在文件中有一个字符串

def s_CalculatePartiallyUsedTechPenalty(rate):\n    total = min(rate,0)\n    title = \"Partially Used Technology Penalty\" \n    return RateItem(title,total,FinancialUniqueCode.PartiallyUsedTechPenalty,False)

当读取该文件时,文本显然是这样的:

def s_CalculatePartiallyUsedTechPenalty(rate):\\n    total = min(rate,0)\\n    title = \\\"Partially Used Technology Penalty\\\" \\n    return RateItem(title,total,FinancialUniqueCode.PartiallyUsedTechPenalty,False)

是否有干净的方法转换此字符串,以便文件中的值也是代码中字符串的实际值。换句话说,例如,\n,而不是

我知道我可以编写一个方法来替换所有适用的值,但是我不想这样做,除非这是唯一的方法。

编辑:回应John Wu的回答。不,我不困惑。我完全理解正在发生的事情,但是我想将文字值“\n”转换为换行符。所以它应该是一个新行,而不是文字值“\n”。

基本上是如何将包含转义字符的字符串转换为字符串的逆过程


共有2个答案

阎星华
2023-03-14

如果无法修复文件写入代码,可以通过以下方式解决此问题:

String.Replace(@"\\\", @"\");
String.Replace(@"\\", @"\");

或者,以防万一,如果您正常未转义的字符串,

String.Replace(@"\\\""", "\"");
String.Replace(@"\\n", Environment.NewLine);

另外,还要考虑其他特殊字符,如\t

更新:

更好的方法:

class Program
{
    static void Main(string[] args)
    {
        var escaped   = @"def s_CalculatePartiallyUsedTechPenalty(rate):\n    total = min(rate,0)\n    title = \""Partially Used Technology Penalty\"" \n    return RateItem(title,total,FinancialUniqueCode.PartiallyUsedTechPenalty,False)";
        var unescaped = Regex.Unescape(escaped);

        Console.WriteLine(unescaped);
    }
}
李兴安
2023-03-14

你把自己搞糊涂了。文件中保存的字符串将与通过读取文件获得的字符串变量中保存的串完全相同。

也许您正在使用VisualStudio检查字符串(例如,在代码处于调试模式时,使用“监视”窗口或只是将鼠标悬停在变量上)。在这种情况下,VisualStudio将显示额外的斜杠,以指示字符串变量包含文本值“\n”,而不是换行符。

如果要消除Watch窗口中的转义字符,可以将格式说明符, nq附加到变量名(链接)。

另请参阅StackOverflow上的此问题。

 类似资料:
  • 我有一个activity,需要SDK,但仍然想使应用程序的其余部分可用于较低的SDK版本。有没有一种方法可以把用户的SDK读成一个字符串,这样我就可以放在一个if语句中了?

  • 我试图获取任意长度的字符串[],并将其打印成字符串,最好使用字段分隔符。现在我有: 但是由于某种原因,它只是返回“第二个”值。我如何使它正确连接这些值? 另外,我可以使用来简化代码吗?谢谢

  • 大家好。我必须制作这个程序,输入一个文本,输出有多少个单词,以及有多少个长度为1、2等的单词。我已经完成了计算单词数的程序,但对于第二部分我不知道。非常感谢任何能帮忙的人。

  • 问题内容: 我已经阅读了有关该主题的几篇文章,但是所提供的代码(有时是片段)都没有帮助我解决转换这样的二进制字符串的简单问题: 插入文本字符串早安 我可能无法将我在stackoverflow中可用的链接中找到的代码片段放在一起。有人会这么友好地给我完整的代码吗?假设我有一个输入字符串(文本)来自我正在通过“ gettext()”访问的JTextarea,例如text = tTextarea.get

  • 我试图使用将json字符串转换为hashmap。 但是得到下面的错误, 在json字符串中,我希望键和值作为字符串并将它们存储到hashMap中。我不想将值解析为jsonArray。

  • 我试图将一个Json字符串转换成HashMap,但是它不起作用。我的代码: 我得到以下例外: 我做错了什么?还有其他的转换可能性吗?或者有什么遗漏吗?