如何从字符串中删除特定的字符列表?
例如,我有一个字符串Multilanguage File07
,并且想要删除所有元音,空格和数字以获取字符串MltlnggFl
。
有没有比使用foreach
循环更短的方法了?
string MyLongString = "Multilanguage File07";
string MyShortString = MyLongString;
char[] charlist = new char[17]
{ 'a', 'e', 'i', 'o', 'u',
'0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', '0', ' ' };
foreach (char letter in charlist)
{
MyShortString = MyShortString.Replace(letter.ToString(), "");
}
答案 0 :(得分:2)
使用此代码替换字符串中的字符列表:
using System.Text.RegularExpressions;
string MyLongString = "Multilanguage File07";
string MyShortString = Regex.Replace(MyLongString, "[aeiou0-9 ]", "");
结果:
Multilanguage File07
=> MltlnggFl
Text from which some chars should be removed 12345
=> Txtfrmwhchsmchrsshldbrmvd
其工作原理的说明:
我在这里使用的Regex表达式是由方括号[]
定义的独立字符的列表。
=> [aeiou0-9 ]
Regex.Replace()遍历整个字符串并查看每个字符(如果它与正则表达式中的字符之一匹配)。
每个匹配的字母都将替换为一个空字符串(“”)。
答案 1 :(得分:1)
如何?
| id | parent_name| parent_name_2 |
| 5 | NULL | NULL |
答案 2 :(得分:0)
答案 3 :(得分:0)
public void removeVowels()
{
string str = "MultilanguAge File07";
var chr = str.Where(c => !"aeiouAEIOU0-9 ".Contains(c)).ToList();
Console.WriteLine(string.Join("", chr));
}
第一行:创建愿望字符串变量。
第二行::使用linq忽略元音单词[大写字母,小写字母,0-9数字和空格]并转换为列表。
第三行:借助string.join函数将chr列表合并为一个行字符串。
结果:MltlnggFl7
注意: removeVowels不仅可用于小写字母,1-9数字和空白,而且还可以从字符串中删除大写字母。