不从c#中的字符串中修剪空白

本文关键字:修剪 空白 字符串 不从 | 更新日期: 2023-09-27 18:20:07

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" 

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

不从c#中的字符串中修剪空白

Trim()删除字符串前后的空白,而不是在中间的空白。中间的空白空间是由作为参数提供给Join()方法的" "插入的。您可以提供string.empty

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

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

或更好:

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

而不是

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

Trim按预期工作。取自字符串。修剪方法:

从当前String对象。

您可能的解决方案是:

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

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

要将第一个n-let与其余的n-let分开,请使用一个额外的数组,否则您将得到伪造的数据。并使用您在拆分中使用的正确分隔符(-)进行连接:

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)) };
}

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

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

试试这个:

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

另外,对于你关于随机放置空格的问题,你能在这里解释一下"随机"吗。