拆分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"。但没有任何具体内容。
我知道在哪里我试图分割字符串的第二部分不是一个合法的条件,但我该如何解决这个问题?
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";
*/