2014-02-15 82 views
-2

我是C#的新手,所以對某些人來說這可能看起來像一個愚蠢的問題。
我有一個地址字符串,如如何解析一個字符串然後劃分?

10 ENJAY巴爾的摩GA博士30319

我想知道如何把它分成4塊,並顯示到單獨的標貼。
街道,城市,州和郵編的一個標籤。
街道地址由用戶更改,因此我無法將表單編程爲只讀取前7位數字。


謝謝您的幫助:)


string Address = "10 Enjay Dr. Baltimore GA 30319" 
String[] tokens = Address.Split(" "); 
      String street = tokens[0] + " " + tokens[1] + " " + tokens[2]; 
      MessageBox.Show(street); 
      string city = tokens[3]; 
      MessageBox.Show(city); 
      string state = tokens[4]; 
      MessageBox.Show(state); 
      string zipcode = tokens[5]; 
      MessageBox.Show(zipcode); 

這是我自己的解決方案,但像其他人說的空間是不分割字符串好辦法。感謝大家的反饋。

+0

你有什麼模式來分割你的字符串?所以你的前7個字符(沒有空格)是街道,其他的呢? –

+2

如何解析1 East Main St紐約NY 10210? –

+0

@D赤柱這是一個很好的問題......:/ – IMAK

回答

1

正如人們所說,你可以用.Split()來做到這一點。但是,爲了處理城市和州的多空間案例,如果您的分隔符也是空格,則實際上是不可能的。在情況下,只有其中之一是多措辭(或,好了,路名是唯一號碼和一個字),你可以做類似的東西:

//Single-word city name 
string str = "10 Enjay Dr. Baltimore GA 30319" 
string[] ss = str.Split(" "); 
string zip = ss[ss.Count - 1]; 
string state = ss[ss.Count - 2]; 
string city = ss[ss.Count - 3]; 
string address = ""; 
for(int i=0;i<ss.Count - 4;i++) 
    address += ss[i]; 

開關周圍,你也可以做單字地址/多字城市名稱的情況。也就是說,在包含空格的有效字符數據列表中選擇空格作爲分隔符是一個可怕的想法。任何不使用不正常分隔符的理由,例如%?或者,因爲誰在乎,爲什麼不像「$%$」?祝你好運,找到一個包含特定字符串作爲有效輸入的案例。