gpt4 book ai didi

c# - string.Split 忽略分隔符之间的空值

转载 作者:行者123 更新时间:2023-11-30 17:01:47 25 4
gpt4 key购买 nike

我正在尝试使用 Streamreader 和 Streamwriter 将一些数据转换为 sql 语句。

我的问题是,当我拆分行时,其中 2 个分隔符之间没有任何内容,甚至没有空格,它们会被忽略,并且出现 IndexOutOfRange 错误

因为我的 temparray 只到 temparray[3] ,但它应该像 temparray[6] ..

如何拆分和使用 Null 值或用简单的 char 替换那些 null 值,以便在创建 sql 语句时不会出现 IndexOutOfRange 错误?

foreach (string a in values)
{
int temp = 1;
String[] temparray = a.Split(';');
streamWriter.WriteLine("Insert into table Firma values({0},'{1}','{2}')", temp, temparray[1], temparray[4]);
temp++;
}

最佳答案

首先,这是自找麻烦(SQL injection)。您应该至少转义从字符串解析的值。

您似乎误会了,因为 String.Split 默认情况下完全符合您的要求:"x;y;;z".Split(';') 返回一个四元素数组 {"x", "y", "", "z"}。您可以使用 StringSplitOptions.RemoveEmptyEntries 实现所描述的行为:"x;y;;z".Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)返回一个元素数组{"x", "y", "z"}。正如您所说,这是您不想要的。

无论哪种方式,"Überarbeitung der SAV Seite;b.i.b.;;;;PB;".Split(';') 在这里为我返回一个七元素数组,因此请检查您的输入和实现……

关于c# - string.Split 忽略分隔符之间的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20614384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com