这是我的代码:
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 */
如何在同一条线上获得三个输入?
/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////
答案 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)
您可以按照自己的方式安全地在一行中输入所有三个数字。