删除 C# 数组中的 null/空字符串值

发布于 2024-07-15 02:07:54 字数 216 浏览 8 评论 0原文

我有一个程序,其中数组使用 string.Split(char[] delimiter) 获取其数据。 (使用“;”作为分隔符。)

但有些值是空的。 即字符串的某些部分没有数据,因此它执行如下操作:

1;2; ; 3;

这导致我的数组具有空值。

我该如何摆脱它们?

I have a program where an array gets its data using string.Split(char[] delimiter).
(using ';' as delimiter.)

Some of the values, though, are null. I.e. the string has parts where there is no data so it does something like this:

1 ;2 ; ; 3;

This leads to my array having null values.

How do I get rid of them?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

清秋悲枫 2024-07-22 02:07:54

尝试这个:

yourString.Split(new string[] {";"}, StringSplitOptions.RemoveEmptyEntries);

Try this:

yourString.Split(new string[] {";"}, StringSplitOptions.RemoveEmptyEntries);
耶耶耶 2024-07-22 02:07:54

您可以使用Where linq 扩展方法来仅返回非空或空值。

string someString = "1;2;;3;";

IEnumerable<string> myResults = someString.Split(';').Where<string>(s => !string.IsNullOrEmpty(s));

You could use the Where linq extension method to only return the non-null or empty values.

string someString = "1;2;;3;";

IEnumerable<string> myResults = someString.Split(';').Where<string>(s => !string.IsNullOrEmpty(s));
说好的呢 2024-07-22 02:07:54
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;
}
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;
}
还不是爱你 2024-07-22 02:07:54

在分割数据之前,您应该将多个相邻的分号替换为一个分号。

这会将两个分号替换为一个分号:

datastr = datastr.replace(";;",";");

但是,如果您有两个以上的分号在一起,正则表达式会更好。

datastr = Regex.Replace(datastr, "([;][;]+)", ";");

You should replace multiple adjacent semicolons with one semicolon before splitting the data.

This would replace two semicolons with one semicolon:

datastr = datastr.replace(";;",";");

But, if you have more than two semicolons together, regex would be better.

datastr = Regex.Replace(datastr, "([;][;]+)", ";");
她比我温柔 2024-07-22 02:07:54
                words = poly[a].Split(charseparators, StringSplitOptions.RemoveEmptyEntries);

                foreach (string word in words)
                    {   
                        richTextBox1.Text += (d + 1)+ "  " + word.Trim(',')+ "\r\n";
                        d++;
                    }

字符分隔符是一个空格

                words = poly[a].Split(charseparators, StringSplitOptions.RemoveEmptyEntries);

                foreach (string word in words)
                    {   
                        richTextBox1.Text += (d + 1)+ "  " + word.Trim(',')+ "\r\n";
                        d++;
                    }

charseparators is a space

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文