自行车:http://unicode.org/emoji/charts/full-emoji-list.html#1f6b4
美国国旗:http://unicode.org/emoji/charts/full-emoji-list.html#1f1fa_1f1f8
自行车手是U 1F6B4,美国国旗是U 1F1FA U 1F1F8.
但是,要检查的表情符号是以这样的数组提供给我的,只有字符串中的数值:
var checkFor = new string[] {"1F6B4","1F1FA-1F1F8"};
如何将这些数组值转换为实际的unicode字符并检查字符串是否包含它们?
我可以为自行车骑士工作,但是对于美国国旗,我很难过.
对于自行车骑士,我正在做以下事情:
const string comparisonStr = "..."; //some string containing text and emojivar hexVal = Convert.ToInt32(checkFor[0],16);var strVal = Char.ConvertFromUtf32(hexVal);//Now I can successfully do the following checkvar exists = comparisonStr.Contains(strVal);
但由于多个代码点,这对美国国旗不起作用.
解决方法 你已经超越了困难的部分.您所缺少的只是解析数组中的值,并在执行检查之前组合2个unicode字符.这是一个应该工作的示例程序:
static voID Main(string[] args){ const string comparisonStr = "bicycList: \U0001F6B4,and US flag: \U0001F1FA\U0001F1F8"; //some string containing text and emoji var checkFor = new string[] { "1F6B4","1F1FA-1F1F8" }; foreach (var searchStringInHex in checkFor) { string searchString = string.Join(string.Empty,searchStringInHex.Split('-') .Select(hex => char.ConvertFromUtf32(Convert.ToInt32(hex,16)))); if (comparisonStr.Contains(searchString)) { Console.Writeline($"Found {searchStringInHex}!"); } }}总结
以上是内存溢出为你收集整理的如何在C#中比较和转换表情符号字符全部内容,希望文章能够帮你解决如何在C#中比较和转换表情符号字符所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)