【问题标题】:adding text after prompt for input在提示输入后添加文本
【发布时间】:2015-08-30 08:58:00
【问题描述】:

我是 Java 新手,我什至不知道我正在尝试做的事情在 cmd 中是否真的可行,但我想知道是否有办法在显示某些内容时询问用户输入输入右侧,类似于:

输入体重:_公斤

例如指定我想要的重量单位

这是我目前的代码示例

import java.util.*;

public class ScannerPrompt {

  public static void main(String[] args) {

    int[] listOfIntegers = new int[10];

    Scanner s = new Scanner(System.in);

    for (int i = 0; i < 10; i++) {
      System.out.print("Enter num: ");
      int num = s.nextInt();
      listOfIntegers[i] = num;
    }

  }
}

【问题讨论】:

  • 你能重新排列请求吗?即“输入重量(公斤):_”
  • 确定这是更简单的方法,但我一直很想知道在提示右侧打印某些内容是否可以在命令行中进行
  • 我也很好奇所以我+1这个问题,我也只是问有没有理由?

标签: java input cmd prompt


【解决方案1】:

我们可以用一种巧妙的方式使用\r

import java.util.Scanner;

public class JavaApplication2 {
  public static void main(String[] args) {
        int i=0;
        Scanner s = new Scanner(System.in);
        System.out.print("Enter num: __kg\r");
        System.out.print("Enter num: ");
        i = s.nextInt();
        System.out.println("\n"+i);     
    }
}

它是如何工作的:

  • 我们打印Enter num: __kg\r 使光标位于行首
  • 现在如果我们打印一些东西,它将覆盖第一个消息,因为光标在第一个位置,所以我们用相同的字母覆盖,但只是使光标位于所需位置的部分。因此我们打印Enter num:

不要使用println,因为它会在末尾插入\n,并且不要在IDE中测试而是使用系统的控制台。

【讨论】:

    【解决方案2】:

    您可以使用回车\r 将光标重新定位到行首

    System.out.printf("%20skg\rEnter num: ", " ");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 2013-10-19
      • 1970-01-01
      • 2023-02-25
      • 2014-01-10
      • 1970-01-01
      • 2016-09-29
      • 2013-10-29
      相关资源
      最近更新 更多