【问题标题】:How to accept inputs with Scanner without spaces in Java?java - 如何在Java中接受没有空格的扫描器输入?
【发布时间】:2016-10-22 03:29:25
【问题描述】:
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));

这是我的代码,它读取四个整数,如果输入由两个匹配对(按某种顺序)组成,则打印“两对”,否则打印“不是两对”。

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

【问题讨论】:

  • 将输入作为字符串输入并拆分每个字符,或使用模数获取每个数字,然后根据需要进行解析并发送到方法。

标签: java input int output space


【解决方案1】:
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]));

【讨论】:

    【解决方案2】:

    为此使用 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());
    

    【讨论】:

      【解决方案3】:

      这样做:

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

      然后将变量“toParse”拆分成一个String数组

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-29
        相关资源
        最近更新 更多