Java - 如何从同一行读取多个值

时间:2016-02-15 00:35:55

标签: java

我正在进行一项java任务,并且被困在这一部分。基本上我们是让用户使用扫描仪输入三个正的非零整数。

应该看起来像这样

输入三个整数值:2 2 10

数字(2,2,10)不能形成三角形。

我想知道如何对其进行编码,以便输入“2 2 10”可以读作三个不同的整数,用逗号分隔。非常感谢你提前。

4 个答案:

答案 0 :(得分:1)

使用java.util.Scanner和for循环读取输入:

Scanner sc = new Scanner(System.in);
int[] values = new int[3];

for (int i = 0; sc.hasNextInt() && i < 3; i++) {
    values[i] = sc.nextInt();
}

答案 1 :(得分:0)

试试这个:

Scanner scan = new Scanner(System.in);
String line = scan.nextLine();
String[] inValues = line.split(" ");
int[] values = new int[inValues.length];
for(int i = 0; i < inValues.length; i++){
    values[i] = Integer.parseInt(inValues[i]);
}

答案 2 :(得分:0)

您可以按照以下方式进行:

String sentence = scanner.nextLine();

你可以做:

String[] splittedByComma = sentence.split(","); 

或按空格:

String[] splittedBySpace = sentence.split(" ");

或者如下例所示的数组列表:

How to split a comma-separated string?

然后将每个解析为整数。

答案 3 :(得分:0)

scanner.nextInt是你的答案

final BufferedReader input = new BufferedReader(
    new InputStreamReader(System.in));

// enter yours 2 2 10 and press Enter
final String line = input.readLine();

final Scanner s = new Scanner(line);
int a = s.nextInt(); // reads 2
int b = s.nextInt(); // reads 2
int c = s.nextInt(); // reads 10

if (a + b > c || a + c > b || b + c > a ) {
    System.out.println(
        "No triangle can be composed from " + a + ", " + b + ", " + c );
}