如何使用扫描仪接受输入而无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得到输出。是否让它接受没有空格的输入?
答
为此使用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
}
采取输入阵列中作为字符串和分割在每个字符上,或使用模数来获取每个数字,然后根据需要解析并发送到方法。 – Li357