[英]Split a C# string
我已經構建了一個轉換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 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";
*/
string.Substring()
的第二個參數是Length,因此將返回FROM約會的長度string.Substring()
':')+ 1。 之所以會出現異常,是因為要添加到第一個參數的間隔超過了字符串的實際長度。 您應該做的是從第二個索引中減去第一個indexOf,因此:
appointment = appointment.Substring(appointment.IndexOf(':') + 1, appointment.LastIndexOf(' ') - appointment.IndexOf(':'));
因此,基本上,我嘗試在每個字符串的末尾添加一個空格,以便可以將它們從“:”拆分到最后一個空格。
哦。 您不必這樣做。 您可以這樣做:
appointment = appointment.Substring(appointment.IndexOf(':')+1, appointment.Length - appointment.IndexOf(':')-1).Trim()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.