我有一个php api,它给我这样的数组:
11%0%0%801%0%0%812%0%0%640%33%6
以上回复将存储在“String a”
中try{
//... Some code of my application which is not relavant to show
String a = response.toString();
String tokens = a.split("%");
for (String str : tokens)
{
Log.e("log_tag", str);
}
String ds = tokens[0];
int i_ds = Integer.parseInt(ds);
Log.e("log_tag", "data is: "+i_ds);
}catch (Exception e) {
Log.e("log_tag","Error: " + e.toString());
}
我在DDMS中得到了关注:
Tag Text
log_tag 11
log_tag 0
log_tag 0
log_tag 801
log_tag 0
log_tag 0
log_tag 812
log_tag 0
log_tag 0
log_tag 640
log_tag 33
log_tag 6
log_tag java.lang.NumberFormatException: Invalid int:"11"
答案 0 :(得分:3)
我只是复制并粘贴了您的代码,尽管其他评论确实说明了您需要进行此更改的事实:String [] tokens = a.split("%");
看起来php正在传递给你一些有趣的隐藏角色!在11号之前有一个隐藏的字符,我会通过执行以下操作来清理你的字符串
tokens[0].replaceAll("[^0-9]", "");
答案 1 :(得分:0)
String.split
返回String[]
替换
String tokens = a.split("%");
同
String[] tokens = a.split("%");
答案 2 :(得分:0)
IT应该
String tokens[] = a.split("%");