簡體   English   中英

分割C#字串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM