1

在 Java 中,我试图打印一个用户输入 100 次的单词,但不是让它在新行上打印每个实例,而是尝试在一行上打印尽可能多的单词,然后转到新行。这在java中很容易做到吗?我是java新手,所以任何帮助将不胜感激!这是我到目前为止所拥有的。

public class Main {

    public static void main(String[] args) {

        String name= "TEST"; //defined for debugging purposes

        int i=0;

        while (i < 100)
        {
            System.out.println(name + " ");
            i++;
        }
}

}

4

4 回答 4

2

您应该使用System.out.print而不是System.out.println在同一行上打印的语句。

于 2015-05-18T01:54:55.620 回答
2
public class Main {
public static void main(String[] args) {

    String name= "TEST"; //defined for debugging purposes

    int i=0;

    while (i < 100)
    {
        System.out.print(name + " ");
        i++;
    }
    System.out.println();
}
}
于 2015-05-18T02:09:10.163 回答
0

如果您希望遵循每行 72 - 80 个字符 (CPL) 标准, http ://en.wikipedia.org/wiki/Characters_per_line ,您可以将您的数据附加到一个单独的数据中,并将StringBuilder每个附加数据计为一次迭代。

public static void main(String[] args) throws Exception {
    final int CHARACTERS_PER_LINE = 72;

    String name = "TEST"; //defined for debugging purposes
    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < 100; i++) {
        sb.append(name).append(" ");

        // Check if the next append exceeds the CPL
        if (sb.length() + name.length() + 1 > CHARACTERS_PER_LINE) {
            System.out.println(sb); // Print the line
            sb.setLength(0); // Clear for a new line
        } 
    }
    // Print what is left
    System.out.println(sb);
}

结果(每行应少于或等于 72 个字符):

TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST TEST 
TEST TEST 
于 2015-05-18T02:16:58.610 回答
0

如果你想要整齐的换行符;您可以使用模数 % 运算符安排它们每 10 次迭代左右自动发生。

public class Main {

    public static void main(String[] args) {

        String name= "TEST"; //defined for debugging purposes

        int i=0;

        while (i < 100)
        {
            System.out.print(name + " ");
            if(i%10 == 0 && i != 0) {
                System.out.println();
            }
            i++;
        }
}

同样,您始终可以使用换行符 \n 在新行上打印。在字符串文字中的 java 转义序列中,以 \ 字符开头,后跟一个转义字符。做 \n 是换行符,\t 是制表符,\' 是单引号,\" 双引号,2 \,反斜杠 - 这些是常见的。

使用换行符和三元运算符:

while (i < 100)
{
    String line = i%10 == 0 && i != 0 ? name + "\n" : name + " ";
    System.out.print(line);
    i++;
}

如果你不熟悉三元运算符;这是一个简化的 if/else 语句。上面的三元运算符同说:

String line = "";
if(i%10 == 0 && i != 0) {
  line = name + "\n";
}
else {
  line = name + " ";
}

这是一种不考虑字符长度的简单格式化方法。

于 2015-05-18T02:17:05.450 回答