如何从地址字符串中分离州,城市,邮政编码,国家等?
|
我想分隔街道,城市,州,国家/地区,邮政编码
String = Kanaka, Ranchi, zalkhand, 10001, India
public class Test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
StringTokenizer st = new StringTokenizer(\" Kanaka, Ranchi, zalkhand, 10001, India\");
System.out.println(\"Tokens are seperated\");
int i=0;
String street,city,state,zipcode,country;
while(st.hasMoreTokens())
{
if(i==0)
{
street = st.nextToken(\",\");
System.out.println(\"street =\"+street);
i++;
}
else if(i==1)
{
city = st.nextToken(\",\");
System.out.println(\"city= \"+city);
i++;
}
else if(i==2)
{
state = st.nextToken(\",\");
System.out.println(\"state =\"+state);
i++;
}
else if(i==3)
{
zipcode = st.nextToken(\",\");
System.out.println(\"zipcode= \"+zipcode);
i++;
}
else if(i==4)
{
contry = st.nextToken(\",\");
System.out.println(\"country= \"+country);
i++;
}
}
}
}
输出是:
06-23 09:23:37.070: INFO/System.out(435): street = Kanaka
06-23 09:23:37.080: INFO/System.out(435): city= Ranchi
06-23 09:23:37.080: INFO/System.out(435): state = zalkhand
06-23 09:23:37.080: INFO/System.out(435): zipcode= 10001
06-23 09:23:37.080: INFO/System.out(435): country= India
上面的代码可以很好地与String \“ Kanaka,Ranchi,zalkhand,10001,India \”一起使用
我的问题是我从xml解析格式不正确的地址字符串
ex. 1) \"Kanaka, Ranchi, zalkhand, 10001, India\"
2) \"Ranchi, zalkhand, 10001, India\" ---> kanaka(street is absent )
输出:
06-23 09:23:37.070:INFO / System.out(435):街道=兰契
06-23 09:23:37.080:INFO / System.out(435):city = zalkhand
06-23 09:23:37.080:INFO / System.out(435):状态= 10001
06-23 09:23:37.080:INFO / System.out(435):邮政编码=印度
06-23 09:23:37.080:INFO / System.out(435):国家=
3) \"zalkhand, 10001, India\"
4) Kanaka zalkhand, 10001, India\" (, is missing )
像这样
那么如何分隔以上字符串呢?
没有找到相关结果
已邀请:
5 个回复
目浆搽
荤碗
您的大脑有足够的背景信息来知道“旧金山”是城市,州代码是“ CA”,但是您如何告诉计算机程序如何做呢? 您需要一个解析器,该解析器对地址是什么有更多的了解。如果分隔符勾勒出每个项目的开始和结束位置,这将有所帮助,因此多令牌项目将不是问题。 您可以使用明确的令牌定界符解决此问题:
在\“〜\”处拆分,一切都很好。
死狸蔽垂藐
赐黄
俺呵誓放胳