我有一个程序,其中一个数组使用string.Split(char[] delimiter)来获取其数据。(使用 ';' 作为分隔符。)
然而,有些值是null。也就是说,字符串中存在没有数据的部分,导致数组中存在null值。
我该如何去掉这些null值?
试试这个:
yourString.Split(new string[] {";"}, StringSplitOptions.RemoveEmptyEntries);
string someString = "1;2;;3;";
IEnumerable<string> myResults = someString.Split(';').Where<string>(s => !string.IsNullOrEmpty(s));
public static string[] nullLessArray(string[] src)
{
Array.Sort(src);
Array.Reverse(src);
int index = Array.IndexOf(src, null);
string[] outputArray = new string[index];
for (int counter = 0; counter < index; counter++)
{
outputArray[counter] = src[counter];
}
return outputArray;
}
words = poly[a].Split(charseparators, StringSplitOptions.RemoveEmptyEntries);
foreach (string word in words)
{
richTextBox1.Text += (d + 1)+ " " + word.Trim(',')+ "\r\n";
d++;
}
charseparators 是一个空格
在拆分数据之前,您应该将多个相邻的分号替换为一个分号。
这将用一个分号替换两个分号:
datastr = datastr.replace(";;",";");
但是,如果你有超过两个分号在一起,正则表达式会更好。
datastr = Regex.Replace(datastr, "([;][;]+)", ";");