java - 打印语句,间距问题。

标签 java printf

我正在尝试创建一个基于文本的老虎机。然而,当我打印变量“s1”、“s2”或“s3”时,如您所见,一切都发生了变化。我的问题是由 s1 的长度不同引起的。我熟悉 printf 概念,但不确定如何纠正间距问题。

                  ("|=================================|     ____\n" +
                   "|           SLOT MACHINE          |    [    ]\n" +
                   "|=================================|     / /\n" +
                   "|                                 |    / /\n" +
                   "|    =========================    |   / /\n" +
                   "|    |   1   |   2   |   3   |    |  / /\n" +
                   "|    =========================    | / /\n" +
                   "|    |       |       |       |    |===|\n"+
                   "|    | "+s1+"| "+s2+"| "+s3+"|    |   |\n" +
                   "|    |       |       |       |    |===|\n" +
                   "|    =========================    |\n" +
                   "|                                 |\n" +
                   "|          [Insert Money]         |\n" +
                   "|=================================|" );

输出看起来像这样....

|=================================|     ____
|           SLOT MACHINE          |    [    ]
|=================================|     / /
|                                 |    / /
|    =========================    |   / /
|    |   1   |   2   |   3   |    |  / /
|    =========================    | / /
|    |       |       |       |    |===|
|    | Apple| Orange| Orange|    |   |
|    |       |       |       |    |===|
|    =========================    |
|                                 |
|          [Insert Money]         |
|=================================|

最佳答案

替换为以下内容。应该可以正常工作。

String slotMachine = "|=================================|     ____\n" +
                     "|           SLOT MACHINE          |    [    ]\n" +
                     "|=================================|     / /\n" +
                     "|                                 |    / /\n" +
                     "|    =========================    |   / /\n" +
                     "|    |   1   |   2   |   3   |    |  / /\n" +
                     "|    =========================    | / /\n" +
                     "|    |       |       |       |    |===|\n"+
                     "|    |%7s|%7s|%7s|    |   |\n" +
                     "|    |       |       |       |    |===|\n" +
                     "|    =========================    |\n" +
                     "|                                 |\n" +
                     "|          [Insert Money]         |\n" +
                     "|=================================|";
System.out.printf(slotMachine, "Apple", "Orange", "Orange");

关于java - 打印语句,间距问题。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49950269/

相关文章:

java - 如何使用java查找操作系统中的用户名

java - 使用十六进制值设置 Android 图像

java - HSQLDB 2.4 如何使用 UNIX_MILLIS() 作为 BIGINT 列的默认值

java - 为什么 float 和 double lambda 参数仅限于 float value set,double value set?

c - 为什么 "1"存储在所有数组索引位置?

java - 将 android 评级栏设置为从 float 变量最近的半星

c - 如何改进 C 语言打印到文本文件的代码?

c - 打印字符时会发生哪些积分提升?

c - 在 Code Composer Studio 中使用 log_printf

c++ - C++ 的新手和 scanf 没有正确读取/打印输入