在Java中,将String数组转换为float数组的最快速最简单的方法是什么?

时间:2014-11-19 03:16:47

标签: java arrays string floating-point type-conversion

我有这样的事情:

 String text[]="5.75,9.05,8.16,0.94,-0.10,-0.56,3.60".split(",");

现在我这样做是为了将它转换为float数组:

float f[]=new float[text.length];
for (int i=0;i<f.length;i++)
    f[i]=Float.parseFloat(text[i]);

我想知道是否有一个班轮可以做这样的事情:

float f[]=(float)text[]

4 个答案:

答案 0 :(得分:1)

Java 8

<强>代码

    String text = "5.75,9.05,8.16,0.94,-0.10,-0.56,3.60 ";
    String[] spText = text.split(",");
    List<Float> list = Stream.of(spText)
            .map(f -> Float.parseFloat(f))
            .collect(Collectors.toList());

    list.forEach(f -> System.out.print(" " + f));

<强>输出

5.75 9.05 8.16 0.94 -0.1 -0.56 3.6

<强>解释

Stream类接受一个数组并逐个解析所有String到float类型,然后将它们收集到一个类型为Float的列表并打印出来

一个问题

可以将String转换为String类型的数组。

  

线程中的异常&#34; main&#34; java.lang.RuntimeException:无法编译   源代码 - 不兼容的类型:java.lang.String无法转换   到java.lang.String []

答案 1 :(得分:1)

除非您使用的是Java 8,否则这是您执行所需操作的最快速,最简单的方法。

如果您使用的是Java 8,则可以执行以下操作:

Float f[] = Arrays.stream(text).map(t -> Float.parseFloat(t)).toArray(Float[]::new);

答案 2 :(得分:1)

在Java 8中,您应该能够执行以下操作:

    float f[] = Arrays.stream(text).map(Float::parseFloat).toArray(Float[]::new);

答案 3 :(得分:1)

首先要做的事情是:虽然在变量名后面使用括号声明数组是合法的,但不建议这样做。以下是普遍接受的方式:

String[] text;

此外,我非常确定您没有通过编译器运行代码,因为您创建阵列的语法不正确。以下是初始化数组的正确方法之一:

String[] text = new String[]{"5.75", "9.05", "8.16", "0.94", "-0.10", "-0.56", "3.60"};

现在,要将String元素转换为float,请使用以下命令:

String[] text = new String[]{"5.75", "9.05", "8.16", "0.94", "-0.10", "-0.56", "3.60"};
Float[] f = new Float[text.length];
Arrays.stream(text).map(Float::parseFloat).collect(Collectors.toList()).toArray(f);