如何使用扫描仪接受输入而无Java中的空格?

问题描述:

public static String countPairs(int i1, int i2, int i3, int i4) { 
    String Pairs = ""; 

    if (i1 == i2 && i3 == i4) Pairs = ("two pairs"); 
    else if (i1 == i3 && i2 == i4) Pairs = ("two pairs"); 
    else if (i1 == i4 && i2 == i3) Pairs = ("two pairs"); 
    else Pairs = ("not two pairs"); 

    return Pairs; 
} 

public static void main(String[] args) { 
    Scanner in = new Scanner(System.in); 
    System.out.print("Enter four numbers: "); 
    int int1 = in.nextInt(); 
    int int2 = in.nextInt(); 
    int int3 = in.nextInt(); 
    int int4 = in.nextInt(); 

    System.out.print(countPairs(int1, int2, int3, int4)); 

这里是我的代码,它读取四个整数并且如果输入由两个匹配对(以某种顺序)组成并且打印“两对”,否则是“不是两对”。如何使用扫描仪接受输入而无Java中的空格?

当我使用扫描仪时,我希望输入接受:1221(不含空格),但如果我自己不输入空格,则不输出任何内容。我必须这样写:1 2 2 1得到输出。是否让它接受没有空格的输入?

+0

采取输入阵列中作为字符串和分割在每个字符上,或使用模数来获取每个数字,然后根据需要解析并发送到方法。 – Li357

为此使用Scanner.nextLine()。

int int1 = Integer.parseInt(in.nextLine()); 
int int2 = Integer.parseInt(in.nextLine()); 
int int3 = Integer.parseInt(in.nextLine()); 
int int4 = Integer.parseInt(in.nextLine()); 

String a = "1234"; 
int[] num = new int[a.length()]; 
for(int x = 0; x< a.length(); x++) num[x] = Character.getNumericValue(a.charAt(x)); 
System.out.println(countPairs(num[0], num[1], num[2], num[3])); 

这样做:

String toParse = scan.nextLine(); // here you can pass 1234 

然后分裂变量 “toParse”,并把它转换成字符串

String toParse = scan.nextLine(); 
String [] toParseArr = toParse.split(""); 
for(int i=0; i<toParseArr.length; ++i){ 
    //obtain values here and do something 
}