Java如何在空格之后忽略任何输入?

时间:2016-09-20 08:34:35

标签: java

我想接受来自用户的3个整数输入。如何在行中的第一个整数后忽略任何内容?例如,当我输入1 2 31 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

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

工作:

  • 最初它将一行读为字符串。
  • 然后使用正则表达式删除空格后的所有字符。
  • 最后将字符串转换为整数。

希望这有帮助,如果有任何澄清,请在下面发表评论。