拆分C#字符串

本文关键字:字符串 拆分 | 更新日期: 2023-09-27 18:28:18

我已经构建了一个程序,用于转换DBF文件并将其显示在Datagridview(C#)中。

它有一个列,其中包含首字母&任命本身。

我还制作了一个程序,可以拆分首字母并将其插入数据库。

在不深入讨论程序本身的情况下,我想问,如何拆分字符串?

单元格中的数据示例"WKO/JVM/RZO:Ingmar Boelens(GT)"

因此,每个单元格中都有数据,其中包含首字母缩写,然后是":",然后是约会本身。

我现在正在使用的代码;

string appointment;
            if (!string.IsNullOrWhiteSpace(row.Cells[2].Value.ToString()))
            {
                appointment = row.Cells[2].Value.ToString();
            }
            else
            {
                appointment = "No data available";
            }
            if (!string.IsNullOrWhiteSpace(appointment ))
            {
                appointment += " ";
                appointment = appointment.Substring(appointment.IndexOf(':') + 1, appointment.LastIndexOf(' '));
            }
            else
            {
                appointment = "No data available";
            }

所以基本上,我尝试在每个字符串的末尾添加一个空白,这样我就可以将它们从":"分割到最后一个空白。

然而,它不起作用,我收到一个错误,说"ArgumentOutOfRangeException"。但没有任何具体内容。

我知道在哪里我试图分割字符串的第二部分不是一个合法的条件,但我该如何解决这个问题?

拆分C#字符串

string.Substring()的第二个参数是Length,因此是FROM约会的长度。正在返回IndexOf(":")+1。由于添加到第一个参数的间隔超过了字符串的实际长度,因此会出现异常。你应该做的是从第二个中减去第一个indexOf,所以:

appointment = appointment.Substring(appointment.IndexOf(':') + 1, appointment.LastIndexOf(' ') - appointment.IndexOf(':'));

所以基本上,我尝试在每个字符串,这样我就可以将它们从":"分隔到最后一个空格。

哦。你不必那样做。你可以做:

  appointment =  appointment.Substring(appointment.IndexOf(':')+1, appointment.Length - appointment.IndexOf(':')-1).Trim()
string s = "WKO/JVM/RZO: Ingmar Boelens (GT)";
string[] words = s.Split(':');
/*
*  words[0]= "WKO/JVM/RZO"
*  words[1] = "Ingmar Boelens (GT)";
*
*/
string[] data= = words[0].Split("/");
/*
*  data[0]= "WKO";
*  data[1] = "JVM";
*  data[2] = "RZO";
*/