[英]Is it possible in java to get multiple inputs in a single line??
I am trying to get multiple inputs in a single code of line.. for example in c++, we could have it like - 我试图在一行代码中获取多个输入。例如在c ++中,我们可以像这样-
int a,b,c;
cin>>a>>b>>c;
is it possible in java also?? Java中也有可能吗?
You can use an array for this purpose, like: 您可以为此使用数组,例如:
public static void main(String[] args) {
int[] values = new int[3];
Scanner in = new Scanner(System.in);
for(int i = 0; i < values.length; i++) {
values[i] = in.nextInt();
}
System.out.println(Arrays.toString(values));
}
UPDATE 2 更新2
In java 8 the above solution can have a shorter version: 在Java 8中,上述解决方案可以使用较短的版本:
Scanner in = new Scanner(System.in);
Integer[] inputs = Stream.generate(in::nextInt).limit(3).toArray(Integer[]::new);
UPDATE 1 更新1
There is another way, which is closer to cin
: 还有另一种方法,更接近
cin
:
public class ChainScanner {
private Scanner scanner;
public ChainScanner(Scanner scanner) {
this.scanner = scanner;
}
public ChainScanner readIntTo(Consumer<Integer> consumer) {
consumer.accept(scanner.nextInt());
return this;
}
public ChainScanner readStringTo(Consumer<String> consumer) {
consumer.accept(scanner.next());
return this;
}
}
public class Wrapper {
private int a;
private int b;
private String c;
public void setA(int a) {
this.a = a;
} /* ... */
}
public static void main(String[] args) {
ChainScanner cs = new ChainScanner(new Scanner(System.in));
Wrapper wrapper = new Wrapper();
cs.readIntTo(wrapper::setA).readIntTo(wrapper::setB).readStringTo(wrapper::setC);
System.out.println(wrapper);
}
if i understood your question correctly you're searching something like this: 如果我正确理解了您的问题,那么您正在搜索如下内容:
a = b = c = 3;
This gets evaluated like this: 评估如下:
a = (b = (c = 3))
And is equivalent to this: 等效于:
c = 3;
b = c;
a = b;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.