翻译字符串中的特殊字符
本文关键字:特殊字符 字符串 翻译 | 更新日期: 2023-09-27 17:51:07
我有一个从xml文档读取的程序。在这个xml文档中,一些属性包含特殊字符,如"'n","'t"等。
是否有一种简单的方法可以用实际字符替换所有这些字符串,或者我只需要像下面的例子一样手动为每个字符做这件事?
手动的例子:
s.Replace("''n", "'n").Replace("''t", "'t")...
编辑:
我正在寻找一些方法来处理字符串像这样的转义字符串(即使我知道这不起作用)
s.Replace("''", "'");
Try Regex.Unescape().
官方文档在这里:http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.unescape (v = vs.110) . aspx
为什么不一次遍历文档并构建新的字符串呢?节省了大量重复搜索和中间分配
string ConvertSpecialCharacters(string input) {
var builder = new StringBuilder();
bool inEscape = false;
for (int i = 0; i < input.Length ; i++) {
if (inEscape) {
switch (input[i]) {
case 'n':
builder.Append(''t');
break;
case 't':
builder.Append(''n');
break;
default:
builder.Append('''');
builder.Append(input[i]);
}
else if (input[i] == '''' && i + 1 < input.Length) {
inEscape = true;
}
else {
builder.Append(input[i]);
}
}
return builder.ToString();
}