(限制:系統; 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