C# 如何拆分包含逗号和空格组合字符的文本?
我有一行,我想用逗号把它分开 “克拉克·肯特,你好,韦恩先生发送于 下午3时38分。” 听起来很简单,对吧?问题是文本不包含单个逗号字符。您在文本中看到的逗号是逗号和空格组合的单个字符(只需在文本编辑器中复制粘贴上面的句子并将其签出即可) 问题是:我需要用逗号分隔文本。虽然我可以复制粘贴该字符并将其作为分隔符之一添加,但我想知道是否可以将这些文本转换为可以用逗号分隔的文本。好吧,现在不要担心中文单词。文本中最后一个字符的情况与此类似。实际上,当我的应用程序语言设置为中文时,就会出现这种行为 仅供参考:我以为这样的逗号是不可打印/非ascii字符,但令我惊讶的是,当我在控制台中打印文本时,我得到: 以下是我的输入和预期输出: 输入:C# 如何拆分包含逗号和空格组合字符的文本?,c#,split,C#,Split,我有一行,我想用逗号把它分开 “克拉克·肯特,你好,韦恩先生发送于 下午3时38分。” 听起来很简单,对吧?问题是文本不包含单个逗号字符。您在文本中看到的逗号是逗号和空格组合的单个字符(只需在文本编辑器中复制粘贴上面的句子并将其签出即可) 问题是:我需要用逗号分隔文本。虽然我可以复制粘贴该字符并将其作为分隔符之一添加,但我想知道是否可以将这些文本转换为可以用逗号分隔的文本。好吧,现在不要担心中文单词。文本中最后一个字符的情况与此类似。实际上,当我的应用程序语言设置为中文时,就会出现这种行为 仅
“克拉克·肯特,你好,韦恩先生发送于 下午3:38。”
预期输出:{“Clark Kent”,“你好,Wayne先生”发送于 下午3:38。”}
我的建议(与评论中的@Chris建议相同)是在拆分之前用普通逗号替换奇怪的逗号值
var s = "Clark Kent,Hello Mr.Wayne,发送于 3:38 PM。";
s = s.Replace(',', ',');
var splitted = s.Split(',');
好处是,如果它发现奇怪的逗号,它将用普通逗号替换它将处理的其他逗号。您面对的逗号是“”(十六进制:0xff0c)。一种常规unicode字符,可使用字符串替换为逗号和空格。替换方法:
s.Replace("<fullwidthComma>", "<trueComma><space>");
s.Replace(“,”);
我想还不清楚。你最好把输入、当前和预期的输出都放进去。你为什么不在溢出之前先替换(“,”),这样你就没事了?!A真的会help@Fabjan“我想知道是不是……”原来
并不是那么奇怪。它只是unicode中一个叫做“全宽逗号”的东西。十六进制:0xff0c。你应该完全可以用我上面评论的方式替换这些。谢谢Chris。这正是我一直在寻找的。