有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

由于某种原因,java用户提示符只差一行吗?

我请求用户输入,但我希望它遵循enter:提示符并在同一行

我的代码将其作为“ok”的结果输入生成

ok
enter: ok
ok

我想用户输入后开始进入:-希望这是一个结果

enter: ok
ok

这是我的代码:

private static Scanner u = new Scanner(System.in);
  try{
      while(u.hasNext() && !u.equals("exit")) {
          System.out.printf("enter: ");
          usrInput = u.next();
          System.out.printf(usrInput + "\n");
          System.out.println(findClosestMatch(usrInput.toLowerCase()));
        }
      } catch(NullPointerException e) {
            System.out.println("Error - NullPointerException");
      }

共 (1) 个答案

  1. # 1 楼答案

    u.hasNext()在提示之前阻止输入。这是不必要的,因为之后调用u.next()会被阻塞。您正在将实际的Scanner对象与“exit”进行比较,这永远不会是真的。试试这个:

    while (true) {
        System.out.print("enter: ");
        if (!u.hasNext() || (usrInput = u.next()).equals("exit")) {
            break;
        }
        System.out.println(usrInput);
        System.out.println(findClosestMatch(usrInput.toLowerCase()));
    }