(限制:系统; ONLY)分割字符串,并删除空格没有。选择
我希望能够以一个字符串分割成一个数组,并删除空格,我有这个目前:
string[] split = converText.Split(',').Select(p => p.Trim()).ToArray();
编辑:也.ToArray不能被明显使用。
但问题是,我不能使用任何其他核心系统方法。那么我怎样才能修剪空间从一个分裂或数组没有使用.select或其他非核心的方式。
谢谢!
(限制:系统; ONLY)分割字符串,并删除空格没有。选择
我希望能够以一个字符串分割成一个数组,并删除空格,我有这个目前:
string[] split = converText.Split(',').Select(p => p.Trim()).ToArray();
编辑:也.ToArray不能被明显使用。
但问题是,我不能使用任何其他核心系统方法。那么我怎样才能修剪空间从一个分裂或数组没有使用.select或其他非核心的方式。
谢谢!
string[] split =
convertText.Split(new[]{',',' '}, StringSplitOptions.RemoveEmptyEntries);
通过为您的拆分条件添加一个空格,当您具有RemoveEmptyEntries时,它将摆脱它们。但是,如果其中有空格的条目将会失败。在这种情况下,你可以只: -
string[] split =
convertText.Split(new[]{','}, StringSplitOptions.RemoveEmptyEntries);
for (int index = 0; index < split.Count; index++)
{
split[index] = split[index].Trim();
}
你可以做一个辅助方法,从每个字符串修剪空间
private IEnumerable<string> SplitAndTrim(char splitChar, string str)
{
if (!string.IsNullOrEmpty(str) && str.Contains(splitChar))
{
foreach (var item in str.Split(splitChar))
{
yield return item.Trim();
}
}
yield return str;
}
用法:
string[] split = SplitAndTrim(',', converText).ToArray();
这段代码根本不正确。在结果数组中有一个获得一个*空字符串*的机会,并且最初的* str *值也会被放弃。事实上,你会从* SplitAndTrim(',',“text,”)*得到错误的结果* {“text”,“”,“text,”* https://dotnetfiddle.net/zDAzAe – Sergey
应该对所有的情况下工作:
public static class TrimHelper
{
public static string[] SplitAndTrim(this string str, char splitChar, StringSplitOptions options = StringSplitOptions.RemoveEmptyEntries)
{
List<string> result = new List<string>();
if (str != null)
{
foreach (var item in str.Split(splitChar, options))
{
string val = item.Trim();
if (options == StringSplitOptions.RemoveEmptyEntries && val == string.Empty)
continue;
result.Add(val);
}
}
return result.ToArray();
}
}
用法:
string[] split = "text, ".SplitAndTrim(',').ToArray();
谢谢!这工作。 – Kennyist
这种类型是基于我以前所知道的......如果你有一个字符串“mega ozs,blah”,这将会失败,因为它会分裂成mega和oucnes –
有机会得到一个空字符串在结果数组中。正如@凯斯所说,*“如果有空格的条目,这将失败”*。 – Sergey