我想要\需要用列表中的另一个字符更改特定字符
我想将“ A”更改为“ \ P \;”
这就是我所做的
for (int i = 0; i < msg.Count; i++)
{
msg[i] = msg[i].Replace("A", "\P\;");
}
但是我得到这个错误: “无法识别的转义序列”
问题在于它之后不会将其更改为十六进制。
这就是我想做的事情:
List<string> changeOne = new List<string>
for (int i=0;i<msg.Count();i++)
{
if msg[i] == "A"
{
changeOne[i] = "\";
change[One[i+1] = "p";
}
i++;
}
我可以做这样的事情吗? 如何使其工作? 因为我认为我会遇到问题
让我们说说味精清单是这样的:
0-D
1-A
2-S
3-1
我希望changeOne列表像这样
0-D
1-\
2-p
3-\
4-;
5-S
6-1
谢谢,
答案 0 :(得分:2)
尝试使用verbatim string literal
-字符串中通常被解释为转义序列的任何内容都将被忽略。
ex:C:\\Users\\Rich
与@"C:\Users\Rich"
在您的情况下:
msg[i] = msg[i].Replace("A", @"\P\;");
答案 1 :(得分:2)
如果您不希望在C#中转义文字值,则可以使用“逐字字符串”标记。
在这种情况下,将[RequiredRole]
替换为"\P\;"
会更容易理解,因为字符串中包含多个转义符。
答案 2 :(得分:1)
主要问题是您的问题不太清楚。 您要用4个字符串替换一个字符串。
1-A
成为
1-\
2-p
3-\
4-;
在您的示例中。
List<string> changeOne = new List<string>
for (int i=0;i<msg.Count();i++)
{
if (msg[i] == "A")
{
changeOne.AddRange( new [] {"\\","p","\\",";" });
}
else
{
changeOne.Add(msg[i]);
}
}
答案 3 :(得分:0)
反斜杠(“ \”)字符是特殊的转义字符,您需要使用两个反斜杠或使用@ verbatim字符串。
for (int i = 0; i < msg.Count; i++)
{
msg[i] = msg[i].Replace("A", "\\P\\;");
//or
msg[i] = msg[i].Replace("A", @"\P\;");
}
您可以参考以下链接:Escape Sequences