为了账号安全,请及时绑定邮箱和手机立即绑定

将 \u2265 插入 C# 字符串

将 \u2265 插入 C# 字符串

C#
千万里不及你 2022-06-12 16:32:25
我有一个包含 a 的数据源\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 技术的部分问题在于\\它被视为单个字符。
查看完整描述

2 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

问题是您的数据源具有\u2265as astring并且没有将其视为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));

}


查看完整回答
反对 回复 2022-06-12
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

另一种更通用的选择(但并不总是适用,它可能会干扰字符串内容)是使用Regex.Unescape()对字符串进行转义:


string myString = "\\u2265" + "20180426";

myString = Regex.Unescape(myString);

将打印


≥20180426


查看完整回答
反对 回复 2022-06-12
  • 2 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信