我尝试拆分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异常。我不知道我做错了什么
答案 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;
}