我有一个包含 \u2265
的数据源,它是作为单个字符出现的大于号或等号,如下所示:≥
然而,当数据到达我的应用程序时,它以 \\u2265
的形式出现。
我现在不关心为什么会出现额外的 \
。
相反,我只想在我的应用程序中将 \\u2265
转换为 \u2265
。
我已经尝试过各种字符串操作,例如这些,它们要么存在语法问题,要么根本不起作用:
disp = dataSource.Replace('\\', '\');
disp = dataSource.Replace("\\", "\");
和
int x = dataSource.IndexOf("\\u");
disp = dataSource.Substring(0, x) + dataSource.Substring(x+1);
Substring 技术的部分问题在于 \\
被视为单个字符。
最佳答案
问题是您的数据源将 \u2265
作为 string
而不是将其视为 char
。如果将 string
版本替换为 char
版本,您将获得所需内容。
data = data.Replace("\\u2265", '\u2265'.ToString());
ToString()
的原因是我们可以为 Replace
使用适当的重载。
@Flydog57 提供的更简单的版本:
data = data.Replace("\\u2265", "\u2265");
受@Jimi 启发的通用版本:
Regex r = new Regex(@"\\u[0-9]{4}");
var matches = r.Matches(data);
var uniqueMatches = matches
.OfType<Match>()
.Select(m => m.Value)
.Distinct();
foreach (var m in uniqueMatches)
{
data = data.Replace(m,Regex.Unescape(m));
}
关于c# - 将\u2265 插入 C# 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53766845/