2012-11-28 149 views
-5

在我的應用程序需要給定存儲以下數據的..如何在C#中分割字符串?

街道,城市,州,郵政和國家


---樣品地址---

***街道:#306,洛杉磯,opp線路塔,第三個十字路口

城市/城鎮:宏茂橋

州:AL-梅拉

郵編:520506

國家:迪拜


但我的串狀部件

「#306,洛杉磯天使,OPP線路鐵塔,第3次交叉\ nAng Mo Kio Al-mera 520506 \ nDubai「

from stri ng如何拆分街道,城市,州,郵政和國家。

[注意:所有字段不是必填字段,甚至可能爲空。所以當空字段傳遞值爲空字符串時,對應字段]

C#變量聲明:string街道,城市,州,郵政,country = string.empty;

我怎麼能存儲從上面的原始字符串拆分到相應的c#變量的值?

+0

使用split();函數的字符串,它返回一個數組與字符串部分。 – RicardoE

+2

http://www.dotnetperls.com/split – RicardoE

回答

2

試試這個:

var address = "#306, Los Angel,opp Line Tower,3rd cross\nAng Mo Kio Al-mera 520506\nDubai".Split(new [] {',', '\n' }) 
var array = address.Split(new [] {',', '\n' }) 

然後遍歷數組分配的變量。將由新行和逗號和空字段分割將被保持(即多個逗號不是問題)

+0

好的,謝謝指出... –

0

使用C#Split()功能

string[] add_var=addrString.Split(','); 
+1

看看他的輸入,這是行不通的,他的地址行有多個逗號。 – taylorjonl

+0

好的,謝謝指出... –

0
var address = "#306, Los Angel,opp Line Tower,3rd cross\nAng Mo Kio Al-mera 520506\nDubai".Split(new[] { ',', '\n' }); 
     var array = Page.Request["Address"].ToString().Split(new[] { ',', '\n' }); 


     if (array.Count() != 0) 
     { 
      if (array[array.Count() - 1].ToString() != "") // Country 
       sCountry = array[array.Count() - 1].ToString(); 
      else 
       sCountry = ""; 


      var sTemp = array[array.Count() - 2].ToString().Split(new[] { ' ' }); 

      if (sTemp.Count() != 0) 
      { 

       // PostalCode 
       if (sTemp[sTemp.Count() - 1].ToString() != "") 
       { 
        sPostalCode = sTemp[sTemp.Count() - 1].ToString(); 
       } 
       else 
       { 
        sPostalCode = ""; 
       } 

       //State Name 
       if (sTemp[sTemp.Count() - 2].ToString() != "") 
       { 
        sState = sTemp[sTemp.Count() - 2].ToString(); 
       } 
       else 
       { 
        sState = ""; 
       } 

      } 
      else 
      { 
       sPostalCode = ""; 
       sState = ""; 
      } 

      if (array[array.Count() - 3].ToString() != "") // City 
       sCity = array[array.Count() - 3].ToString(); 
      else 
       sCity = ""; 


      for (int i = 0; i < (array.Count() - 3); i++) // Street 
      { 
       sStreet = sStreet + array[i].ToString(); 
      } 

     }