用.NET輕鬆分析字串值

來源:互聯網
上載者:User
  用.NET輕鬆分析字串值  處理字串值是大多數應用程式開發項目不可缺少的一部分。這常常涉及把字串分析分解為單獨的值。例如,接受來自諸如試算表等外部資料源的資料往往會用到以一些常用格式出現的值,比如用逗號分隔的值。.NET的String類會簡化提取逗號之間的各個值的過程。   提取值   String類的Split方法讓你能夠提取用特定字元分隔的各個值。分隔字元的值被傳遞給方法,後者通過其第二個變體接受用第二個參數被重載,而這個參數用來指定返回的元素的最大數量。(註:你可以指定在一個字元數組裡使用一個以上的分隔字元。)從字串提取出來的值被返回到String數組裡。   下面是兩個變數:   C#語言裡的String.Split(char[]),或者VB.NET裡的String.Split(Char()) C#語言裡的String.Split(char[], int),或者VB.NET裡的String.Split(Char(), Integer) 下面的C#程式碼片段會利用使用逗號分隔的字串值來填充一個數組:   string values = "TechRepublic.com, CNET.com, News.com, Builder.com, GameSpot.com"; string[] sites = values.Split(','); foreach (string s in sites) { Console.WriteLine(s); } 下面就是產生的結果:   TechRepublic.com CNET.com News.com Builder.com GameSpot.com 相應的VB.NET代碼是:   Dim values As String values = "TechRepublic.com, CNET.com, News.com, Builder.com, GameSpot.com" Dim sites As String() = Nothing sites = values.Split(",") Dim s As String For Each s In sites Console.WriteLine(s) Next s 你也可以指定多個分隔字元,放在一個字元數組裡。下面的代碼會用逗號、冒號或者分號來分割字串的值。此外,它用到了可選的第二個參數,把返回的值的最大數量設定為4。   char[] sep = new char[3]; sep[0] = ','; sep[1] = ':'; sep[2] = ';'; string values = "TechRepublic.com: CNET.com, News.com, Builder.com; GameSpot.com"; string[] sites = values.Split(sep, 4); foreach (string s in sites) { Console.WriteLine(s); } 下面就是產生的結果(注意,第二個參數把字串剩下的部分放在最後的數組元素裡):   TechRepublic.com CNET.com News.com Builder.com; GameSpot.com 相應的VB.NET代碼是:   Dim values As String values = "TechRepublic.com: CNET.com, News.com, Builder.com; GameSpot.com" Dim sites As String() = Nothing Dim sep(3) As Char sep(0) = "," sep(1) = ":" sep(2) = ";" sites = values.Split(sep, 4) Dim s As String For Each s In sites Console.WriteLine(s) Next s 儘管Split方法可以讓你很容易使用字串值裡的各個元素,但是你可能還是需要根據預先定義的格式(比如用逗號分隔的值)來格式化所有的值。String類使得合成正確格式的字串變得很容易。   合成字串 String 類的 Join 方法將用作分隔字元的字元接受為第一個參數。要被接在一起的值被當作第二個參數以字串數組的形式傳遞。它有一個重載方法簽名,能夠將整數值接受為第三個和第四個參數。第三個參數用來指定要使用的第一個數組元素,而最後一個參數是要使用的元素的總數。 下面的 C# 程式碼範例說明了合成前面樣本裡字串值的過程: string sep = ", ";
string[] values = new String[5];
values[0] = "TechRepublic.com";
values[1] = "CNET.com";
values[2] = "News.com";
values[3] = "Builder.com";
values[4] = "GameSpot.com";
string sites = String.Join(sep, values);
Console.Write(sites); 下面是產生的結果: TechRepublic.com, CNET.com, News.com, Builder.com, GameSpot.com 相應的 VB.NET 代碼是: Dim sep As String
sep = ", "
Dim values(4) As String
values(0) = "TechRepublic.com"
values(1) = "CNET.com"
values(2) = "News.com"
values(3) = "Builder.com"
values(4) = "GameSpot.com"
Dim sites As String
sites = String.Join(sep, values)
Console.Write(sites) 我們可以使用重載格式來指定從哪裡開始,以及結果中需要包含多少個元素。下面的樣本從第二個開始(要注意的是,元素的編號是從 0 開始的),並最多返回三個元素: Dim sep As String
sep = ", "
Dim values(4) As String
values(0) = "TechRepublic.com"
values(1) = "CNET.com"
values(2) = "News.com"
values(3) = "Builder.com"
values(4) = "GameSpot.com"
Dim sites As String
sites = String.Join(sep, values, 2, 3)
Console.Write(sites) 元素的起始編號以及返回的最大數量必須是在所使用的字串數組的範圍內。如果這兩者都不正確(也就是說,超出了數組的範圍),那麼就會出現異常。因此,使用 try/catch 來處理碰到的問題是個好主意。 儘管 String 類提供了必要的方法,但是它並不是用來分析字串值的唯一方式。另外一種常用的方式利用的Regex。  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.