Java:如何在同一行输入多个值?

时间:2015-03-14 14:41:24

标签: java

这是我的代码:

 package assignment.pkg1;

 import java.util.Scanner;

 public class Exercise3 {


 public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    System.out.print("Enter three integers: ");

    byte t1 = scan.nextByte() , t2 = scan.nextByte(), t3 = scan.nextByte(); }

/* I'm getting this result for example: 
Enter three integers: 10
20
30

I want to get this result: 10 20 30 */

如何在同一条线上获得三个输入?

/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////

4 个答案:

答案 0 :(得分:0)

使用正则表达式,模式和匹配器

String input = user_input.nextLine();
Pattern p = Pattern.compile("(\\d+)|([a-zA-Z]+)");
Matcher m = p.matcher(input);
List<String> nums = new LinkedList<String>();
while (m.find()) {
    String num = m.group(1);   
    nums.add(num);
    System.out.println(nums);
}

答案 1 :(得分:0)

将输入作为字符串。使用Regx并分离字符串并将其放入数组中。

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int length = 3;

    System.out.print("Enter three integers: ");
    String s = scan.nextLine();
    String[] array = s.split("\\s", -1);
    for (int i = 0; i<array.length;i++){
        System.out.println(array[i]);
    }
    }

答案 2 :(得分:0)

您需要将整行读作字符串。 然后将空格上的行拆分为字符串数组。 然后将字符串解析为字节。

Scanner scanner = new Scanner(System.in);
System.out.print("Enter three integers: ");
String line = scanner.nextLine();
String[] numbers = line.split(" ");
byte t1 = Byte.valueOf(numbers[0]);
byte t2 = Byte.valueOf(numbers[1]);
byte t3 = Byte.valueOf(numbers[2]);

请记住,在输入第3个号码之前,您不应该按回车。

答案 3 :(得分:0)

您可以按照自己的方式安全地在一行中输入所有三个数字。