如何解析String然后除?

时间:2014-02-15 22:48:59

标签: c# string winforms

我是C#的新手,所以对某些人来说这似乎是一个愚蠢的问题。
我有一个地址字符串,如

  

10 Enjay Dr. Baltimore 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);

这是我自己的解决方案,但是像所有人都说空间不是拆分字符串的好方法。感谢大家的反馈。

1 个答案:

答案 0 :(得分: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];

切换你周围也可以做单字地址/多字城市名称案例。话虽这么说,在包含空格作为有效字符的数据列表中选择空格作为分隔符是一个可怕的想法。有什么理由不使用像%这样的不寻常的分隔符?或者,既然谁在乎?,为什么不像“$%$”?祝你找到一个包含特定字符串作为有效输入的案例。