0

假设:

  1. 字符串数组中的每个字符串都是 Double 类型。

  2. 字符串数组中的某些字符串可能为空。

  3. 每当 String Array 中的字符串为 null 时,其对应的 Integer Array 中的 Integer 的值应为 0。

编辑:成功转换后,我想返回这个创建的整数数组。

我被困在字符串为空的地方,在字符串为空的地方得到 NumberFormatException。

提前致谢。

4

4 回答 4

3

在将 String 转换为 Double 之前,使用 if 语句检查 String 是否等于 null。

如果 String 等于 null,则将零移动到 Integer 数组,否则进行 String 到 Double 的转换,将 Double 转换为 Integer,并将 Integer 放入 Integer 数组。

于 2012-12-31T14:07:28.337 回答
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 + " ");
            }
        }
    }
于 2012-12-31T14:23:27.067 回答
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]);
}
于 2012-12-31T14:12:31.433 回答
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(".")));
    }
}
于 2012-12-31T14:15:31.103 回答