如何使单词出现在终端列表中?

时间:2017-11-21 18:30:58

标签: java

说我在这里有这行代码

div.item:hover { //some code img { border-bottom: 5px solid #8cc34b; margin-bottom: -5px; } }

它会在终端上打印出来

你最喜欢的颜色1 =蓝色,2 =绿色,3 =黄色,4 =橙色,5 =红色,6 =紫色

怎么会把它变成这样弹出来的地方?

你最喜欢的颜色是什么?

1 =蓝色

2 =绿色

3 =黄色

等...

有点像终端中的列表但是所有来自一行代码,我发誓我曾经知道如何但我记不起来,我无法在任何地方找到它。

2 个答案:

答案 0 :(得分:0)

对于Unix系统,换行就足够了。

System.out.println("This is the first line\nThis is the second line");

但是我相信在Windows上你需要一个换行和回车,如果我的记忆最适合我的话吗?​​

System.out.println("This is the first line\r\nThis is the second line");

另一种解决方案,如果您总是希望在问号中指定的逗号之后打印新行。您可以用新行替换逗号。我通常不会推荐这种解决方案,但在这种情况下它会起作用。

例如,

String colours = "1=blue,2=green,3=yellow";
colours = colours.replaceAll(",", "\n"); // Or \r\n
System.out.println(colours );

答案 1 :(得分:0)

@Test
public void testInput() throws NumberFormatException, IOException {

    final List<String> options = Arrays.asList("blue", "green", "yellow", "orange", "red", "purple");

    final StringBuilder sb = new StringBuilder("What is your favorite color\n");
    IntStream.range(0, options.size()).forEach(i -> sb.append(i).append("=").append(options.get(i)).append("\n"));

    System.out.println(sb.toString());

    final BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
    final int value = Integer.parseInt(in.readLine());
    if (value >= 0 && value < options.size()) {
        System.out.println("You choose " + options.get(value) + " (" + value + ")");
    } else {
        System.err.println("Invalid input (" + value + ")");
    }
}

作为一个更广泛的答案并使用看起来很酷的流 - 但是它也是一个简单的for循环; - )