/// <summary>
/// 截取地址 省 市 区 hufei
/// </summary>
/// <param name="address"></param>
/// <returns></returns>
public static Dictionary<string, string> Address(string address)
{
string province = string.Empty;
string city = string.Empty;
string country = string.Empty;
string community = string.Empty;
Dictionary<string, string> addres = new Dictionary<string, string>();
int index = 0;
StringBuilder stringBuilder = new StringBuilder(); //创建StringBuilder类对象
string str = address;
char[] array = str.ToCharArray(); //把字符串转化成字符数组
IEnumerator enumerator = array.GetEnumerator(); //得到枚举器
while (enumerator.MoveNext()) //开始枚举
{
if ((char)enumerator.Current != ' ') //向StringBuilder类对象添加非空格字符
stringBuilder.Append(enumerator.Current.ToString());
}
string area = stringBuilder.ToString();
if (area.Contains("省"))
{
index = area.IndexOf("省");
province = area.Substring(0, index + 1);
addres.Add("province", province);
}
if (area.Contains("市"))
{
if (!area.Contains("省"))
{
area = area.Substring(index);
}
else
{
area = area.Substring(index + 1);
}
index = area.IndexOf("市");
city = area.Substring(0, index + 1);
addres.Add("city", city);
}
if (area.Contains("县") || area.Contains("区"))
{
index = area.LastIndexOf("市");
area = area.Substring(index + 1);
index = area.IndexOf("县");
if (index == -1)
{
index = area.IndexOf("区");
country = area.Substring(0, index + 1);
addres.Add("country", country);
index = area.LastIndexOf("区");
community = area.Substring(index + 1);
addres.Add("community", community);
}
else
{
country = area.Substring(0, index + 1);
addres.Add("country", country);
index = area.LastIndexOf("县");
community = area.Substring(index + 1);
addres.Add("community", community);
}
}
return addres;
}
static void Main(string[] args)
{
string str = "广东省潮州市湘桥区自来水总公司收费处(西河路)西园路e1幢3梯801";
Dictionary<string, string> address = Address(str);
if (address.ContainsKey("province"))
{//省
string province = address["province"];
}
if (address.ContainsKey("city"))
{//市
string city = address["city"];
}
if (address.ContainsKey("country"))
{//县
string country = address["country"];
}
if (address.ContainsKey("community"))
{//小区
string community = address["community"];
}
}
本文介绍了一个简单的地址解析器实现,该解析器能够从完整的地址中提取出省份、城市、区县和社区等信息,并以字典形式返回。通过分析输入地址的结构,此方法有效地将地址分解为关键组成部分。



1223

被折叠的 条评论
为什么被折叠?



