0

我有一个 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"
4

2 回答 2

3

我刚刚复制并粘贴了您的代码,尽管其他评论确实说明了您确实需要进行此更改: String [] tokens = a.split("%");

看起来 php 正在向您传递一些有趣的隐藏字符!数字 11 之前有一个隐藏字符,我会通过执行以下操作来清理您的字符串

tokens[0].replaceAll("[^0-9]", "");
于 2013-08-25T22:06:26.203 回答
0

String.split返回一个String[]

替换 String tokens = a.split("%");String[] tokens = a.split("%");

于 2013-08-25T22:07:48.127 回答