java - 我在将字符串转换为整数时遇到 NumberFormatException

标签 java android

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

最佳答案

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

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

tokens[0].replaceAll("[^0-9]", "");

关于java - 我在将字符串转换为整数时遇到 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434092/

相关文章:

java - 以随机顺序对arraylist进行排序

java - 列表结构的流和过滤器

java - 打印 PDF 文件

java - 如何创建 Java gradle 项目

android - 操作栏和选项卡适配器 : can I long press a tab?

java - 如何使用 JSlider slider 或 JScrollBar 增加/减少图像的亮度

java - 无法关闭 Android Activity

android - 获取 Activity 经理的状态

android - 信标 : Android/Iphone Bluetooth range

android - 填充布局时如何使用适配器