我有这样的事情:
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[]
?
答案 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);