android String numberformatexception

时间:2014-04-16 12:45:41

标签: java android string

我尝试拆分String数组并在此数组中显示rundom值.i写入函数可以拆分String

public int Cal(String ab) {

    String[] arr=ab.split(":");
    int av=(Integer.parseInt(arr[0])*60 +  Integer.parseInt(arr[1]))*1000;



    return av;
}

我将此功能称为

String[] st =  {"00:49 ","00:49","02:17","03:26","03:55", "04:26", "05:25" };



                Random random = new Random();
                String index = st[random.nextInt(st.length)];
                Log.e("randommmmmmmmmmmm", String.valueOf(Cal(index)));

我有numberformatexception异常。我不知道我做错了什么

4 个答案:

答案 0 :(得分:0)

这意味着您将无效的数字传递给parseInt方法。 Integer类的parseInt方法需要一个有效的字符串表示形式

答案 1 :(得分:0)

使用如下所示的Trim()方法,

public int Cal(String ab) 
{
    String[] arr=ab.split(":");
    int av = ( Integer.parseInt(arr[0].trim())*60 +  Integer.parseInt(arr[1].trim()))*1000;
    return av;
}

trim()将删除空格。每当您尝试将数字字符串转换为数字(即" 11")时,您应始终记得使用trim()来避免NumberFormatException

答案 2 :(得分:0)

你的String数组第一个元素在最后一个空间 --->> " 00:49"

 String[] arr=ab.split(":");
 Integer.parseInt(arr[1])  --------->>> This Leads to NumberFormatException

因此请在使用前尝试修剪数据..

int av=(Integer.parseInt(arr[0].trim())*60 +  Integer.parseInt(arr[1]).trim())*1000;

答案 3 :(得分:0)

使用以下代码。

public int Cal(String ab) {

    String[] arr=ab.split(":");
    int av=(Integer.parseInt(Integer.parseInt(arr[0]))*60 +  Integer.parseInt(arr[1]))*1000;



    return av;
}