.Trim()方法不起作用? C#

时间:2014-08-19 02:15:00

标签: c# arrays trim

我循环遍历字符串数组中的元素以查找和删除元音,但它只删除了“' 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' }));

        }

输出: Compiler Output

3 个答案:

答案 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,用空字符串替换单字符子串。