不在c#中修剪字符串中的空格

时间:2014-08-29 08:03:11

标签: c#

Trim()功能不起作用请帮助它不要修剪空白区域。

string samplestring = "172-6573-4955";  
string[] array = samplestring .Split('-');
string firstElem = array.First();
string restOfArray = string.Join(" ", array.Skip(1));
array[1] = restOfArray.Trim(); // providing value "6573 4955" 

场景是我正在拆分字符串并将第二个和最后一个索引合并为一个,但它与白色空格合并。

6 个答案:

答案 0 :(得分:3)

Trim()从字符串的正面和背面移除空格,而不是在中间。中间的空格由作为" "方法的参数提供的Join()插入。您可以改为提供string.empty

答案 1 :(得分:2)

Trim用于删除所有前导和尾随空格。而你想要从中间修剪白色空间。你可以尝试这样:

string restOfArray = string.Join("", array.Skip(1)); 

或更好:

string restOfArray = string.Join(string.Empty, array.Skip(1)); 

而不是

string restOfArray = string.Join(" ", array.Skip(1)); 

答案 2 :(得分:0)

Trim按预期工作。取自String.Trim Method

  

从中删除所有前导和尾随空白字符   当前的String对象。

您可能的解决方案是:

string restOfArray = string.Join(string.Empty, array.Skip(1)); 

或者

 array[1] = restOfArray.Replace(" ", string.Empty).Trim();

答案 3 :(得分:0)

要将第一个n-let从其余部分中拆分,请使用其他数组,否则最终会出现虚假数据。并使用您在split(-)中使用的正确分隔符加入:

string restOfArray = string.Join("-", array.Skip(1));
string[] result = new string[] { firstElem, restOfArray };

您不需要Trim()

您可以通过以下方式简化代码:

string[] splitCode(string code)
{
    string[] segments;

    segments = code.Split('-');

    return new string[] { segments.First(), string.Join("-", segments.Skip(1)) };
}

答案 4 :(得分:0)

这里真的不需要修剪;你可以简单地拆分字符串并加入你想要的部分:

string source = "172-6573-4955";  
string[] splitter = new string[] {"-"};
string[] result;
result = source.Split(splitter, StringSplitOptions.None);
string final = (result[1] + result[2]);
Console.Write(final);

结果:

<强> 65734955

答案 5 :(得分:0)

试试这个:

string samplestring = "172-6573-4955";
string[] array = samplestring.Split(new char[] {'-'},2);
string result = array[1].Replace("-","");

另外,关于随机放置空格的问题,你可以随机解释一下&#34;这里。