我循环遍历字符串数组中的元素以查找和删除元音,但它只删除了“' o'来自第一个元素。
我有什么:
string[] inst = new string[] { "cello", "guitar", "violin", "double bass", };
for(int x = 0; x < inst.Length; x++)
{
Console.WriteLine(inst[x].Trim(new Char[] { 'a', 'e', 'i', 'o', 'u' }));
}
输出:
答案 0 :(得分:4)
这是预期的行为。 Trim()从字符串的beg和end中删除指定的字符:
Trim方法从当前字符串中删除所有前导和 尾随空白字符。每个前后饰边 遇到非空白字符时,操作停止。对于 例如,如果当前字符串是“abc xyz”,则使用Trim方法 返回“abc xyz”。
http://msdn.microsoft.com/en-us/library/t97s7bs3(v=vs.110).aspx
答案 1 :(得分:1)
您应该使用Replace()
方法,而不是Trim()
for(int x = 0; x < inst.Length; x++)
{
inst[x] = inst[x].Replace("a", "");
inst[x] = inst[x].Replace("e", "");
inst[x] = inst[x].Replace("i", "");
inst[x] = inst[x].Replace("o", "");
inst[x] = inst[x].Replace("u", "");
}
答案 2 :(得分:0)
正如文档所述,Trim
方法仅从String
的开头和结尾删除字符。它不会从中间删除字符。您可能需要String.Replace
,用空字符串替换单字符子串。