2014-02-15 30 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]; 

开关周围,你也可以做单字地址/多字城市名称的情况。也就是说,在包含空格的有效字符数据列表中选择空格作为分隔符是一个可怕的想法。任何不使用不正常分隔符的理由,例如%?或者,因为谁在乎,为什么不像“$%$”?祝你好运,找到一个包含特定字符串作为有效输入的案例。