C# 忽略用户输入C中的所有标点符号#
如何从用户输入中删除所有标点符号?我有一个字符串变量保存输入,但输入也可以如下所示:C# 忽略用户输入C中的所有标点符号#,c#,C#,如何从用户输入中删除所有标点符号?我有一个字符串变量保存输入,但输入也可以如下所示: string line = " :%tgc_7_$;:U|F]wyWhb3230;n7"`da "; 所以很明显,引号会弄乱整个代码。我试过这个 var sb = new StringBuilder(); foreach (char c in line) { if (!char.IsPunctuation(c)) sb.Append(c); } line = sb.T
string line = " :%tgc_7_$;:U|F]wyWhb3230;n7"`da ";
所以很明显,引号会弄乱整个代码。我试过这个
var sb = new StringBuilder();
foreach (char c in line)
{
if (!char.IsPunctuation(c))
sb.Append(c);
}
line = sb.ToString();
但这并不能解决报价问题。谢谢你给我的建议
编辑-我只想从中提取数字,我有代码,但我需要一个不带引号的字符串“”和=,因为当它出现时,我得到一个错误要根据注释和编辑实现您想要的内容,只需简单地更改即可
var sb = new StringBuilder();
foreach (char c in line)
{
if (char.IsDigit(c))
sb.Append(c);
}
line = sb.ToString();
行后面应该只有数字。您是说后面的勾号(`)字符吗?反勾号是Unicode中的“符号”,而不是标点符号。那么你想要的就是数字和字符?为什么你说引号会弄乱整个代码。我怀疑不止双引号满足ispuncuation(),如果双引号干扰了代码,那么您是否尝试过转义它?例如:
string line=“blah\”blah“
。问题是我不知道“字符”将出现在哪里,或者=将出现在哪里。我只知道我将有一个充满随机字符的字符串,我想删除所有标点符号,以便以后可以从中提取数字it@Crash我想删除所有标点符号,以便以后从中提取数字
===>仅供参考:您的代码可以简化为一行line=string.Concat(line.Where(char.IsDigit))哦,是的,我知道。我只是将其与问题中提供的内容联系起来,以便他们能够看到他们所写内容与我所写内容之间的差异。如果他们想重构它,就让他们来吧。