假设:
字符串数组中的每个字符串都是Double类型。
字符串数组中的某些字符串可能为空。
每当String Array中的字符串为null时,其整数数组中对应的Integer的值应为0.
编辑:成功转换后,我想返回这个创建的整数数组。
我被困在Strings为null的地方,在字符串为空的地方获得NumberFormatException。
先谢谢。
答案 0 :(得分:3)
在将String转换为Double之前,使用if语句检查String是否等于null。
如果String等于null,则将零移至Integer数组,否则执行String to Double转换,将Double转换为Integer,并将Integer放入Integer数组中。
答案 1 :(得分:3)
希望这有帮助!
public class Test {
public static void main(String[] args) {
String[] strArray = {"1.1", "2.2", null, "3.3"};
Integer[] intArray = new Integer[4];
for (int i = 0; i < strArray.length; i++) {
intArray[i] = (strArray[i] == null) ? 0 : (int) Double.parseDouble(strArray[i]);
}
System.out.println("String array = ");
for (String str : strArray) {
System.out.print(str + " ");
}
System.out.println();
System.out.println("Integer array = ");
for (Integer integer : intArray) {
System.out.print(integer + " ");
}
}
}
答案 2 :(得分:2)
一个简单的三元运算符就可以了:
String[] s = //Array instantiation
double d = new double[s.length];
for(int i = 0; i < s.length; i++)
{
d[i] = s[i] == null ? 0 : Double.parse(s[i]);
}
答案 3 :(得分:2)
所以你想将你的字符串转换为整数,即使它们存储了双打?如果是这样,那么这样的事情应该有效:
for (int i = 0; i < stringArray.length; i++) {
String s = stringArray[i];
if (s == null || s.isEmpty()) {
integerArray[i] = new Integer(0);
} else {
integerArray[i] = new Integer(s.substring(0,s.indexOf(".")));
}
}