我想接受来自用户的3个整数输入。如何在行中的第一个整数后忽略任何内容?例如,当我输入1 2 3
或1 abc 3
时,int test[]
变量只会接受1
,而该行的其余部分将被忽略。
目标:在第一个整数(从第一个空格开始)之后忽略(或清除)任何内容,包括任何空格或字符。如果可能的话,向用户发出警告以警告用户无法在输入中输入空格将会很棒。我没有找到从同一行读取多个整数的解决方案。
这就是我所拥有的:
private final int[] test = new int[4]; // I just use 1-3
Scanner input = new Scanner(System.in);
System.out.print("1st Integer: ");
test[1] = input.nextInt();
System.out.print("2nd Integer: ");
test[2] = input.nextInt();
System.out.print("3rd Integer: ");
test[3] = input.nextInt();
对于上面的代码,如果我只输入一个整数,例如1 enter 2 enter 3 enter
,没关系。但是当我输入像1 2 3
这样的东西(白色空格在3个整数之间)时,它只输出这样的东西:
1st Integer: 1 2 3
2nd Integer: 3rd Integer:
我希望我的代码是这样的:
1st Integer: 1
2nd Integer: 2
3rd Integer: 3
答案 0 :(得分:0)
通过这种简单的方法,您可以将数字转换为字符串数组,并将它们转换为整数。
Scanner scanner = new Scanner(System.in);
String[] array = scanner.nextLine().split(" ");
int[] intArray = new int[array.length];
for( int i = 0; i < array.length; i++ ){
intArray[i] = Integer.parseInt(array[i]);
}
你可以在这里找到很多好的答案; Read integers separated with whitespace into int[] array
答案 1 :(得分:0)
这样可以正常工作。
private final int[] test = new int[4]; // I just use 1-3
Scanner input = new Scanner(System.in);
System.out.print("1st Integer: ");
test[1] = input.nextInt();
input.nextLine();
System.out.print("2nd Integer: ");
test[2] = input.nextInt();
input.nextLine();
System.out.print("3rd Integer: ");
test[3] = input.nextInt();
input.nextLine();
答案 2 :(得分:0)
嘿,使用此代码,这将生成所需的输出,
int[] tes = new int[4];// I just use 1-3
System.out.println("Warning : Whitespace cannot be enter in the input");
Scanner input = new Scanner(System.in);
System.out.println("1st Integer: ");
tes[1] = Integer.parseInt(input.nextLine().replaceAll("\\s.+", ""));
System.out.println("2nd Integer: ");
tes[2] = Integer.parseInt(input.nextLine().replaceAll("\\s.+", ""));
System.out.println("3rd Integer: ");
tes[3] = Integer.parseInt(input.nextLine().replaceAll("\\s.+", ""));
System.out.println("Output : "+tes[2]);
输出:
Warning : Whitespace cannot be enter in the input
1st Integer:
456 ddf 477
2nd Integer:
33 dfgf ddddds rrsr 566
3rd Integer:
2 4 4 4
Output : 33
工作:
希望这有帮助,如果有任何澄清,请在下面发表评论。