例如:
输入: 14 5 1
将这三个值分成三个int变量的最佳方法是什么?
另外,如果我们处理双值会有什么不同吗?
答案 0 :(得分:4)
使用Java 8,您可以将整个字符串转换为数字流,如下所示:
IntStream intStream = Arrays.stream(input.split(" ")).mapToInt(Integer::parseInt);
从那里,您可以将Stream
转换为数组:
intStream.toArray();
您可以直接采取行动:
intStream.forEach(n -> {
// do something here with n
});
......还有更多:http://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
编辑正如克里斯指出的那样,IntStream
还有一些专门为整数量身定制的实用程序:http://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html
玩得开心!
答案 1 :(得分:2)
使用Scanner
类。
Scanner scan = new Scanner("14 5 1");
System.out.println(scan.nextInt());
System.out.println(scan.nextInt());
System.out.println(scan.nextInt());
此代码段将输出
14
5
1
使用nextDouble()
时,您可以使用nextInt()
代替double
如果你不知道你将拥有多少个数字,你可以使用while循环来继续阅读数字。您可以将上述内容重写为
Scanner scan = new Scanner("14 5 1");
while(scan.hasNextInt())
System.out.println(scan.nextInt());
输出应保持不变。如果它对您的程序来说更简单,请使用它。
答案 2 :(得分:2)
你可以在一行中得到这些数字,假设你已经这样做并存储在String s;
你可以通过String [] k = String s.split(" ");
将它们拆分成一个字符串数组,这会将String s
拆分成一个由空格分隔的一个字符串数组中的3个不同的字符串,在你这样做后,将它们转换为你想要的任何地方使用这些,
int a = Integer.parseInt(k[0]);
double b = Integer.parseDouble(k[1]);
double c = Integer.parseDouble(k[2]);