System.out.print。如何将打印输出编号? (JAVA)

时间:2015-03-15 17:33:51

标签: java output system.out

因此,假设我正在打印出500名员工的巨大记录。在打印出记录后,我希望它看起来像:

   1. Matthew J. $USD 28.404
   2. Donna M. $USD 43.254
   3. Jordan D. $USD 15.532
   4.
   5. 
   6.
   7. and so on......

然而......使用普通的printout命令,它看起来像:

System.out.println();

我的输出:

   Matthew J. $USD 28.404
   Donna M. $USD 43.254
   Jordan D. $USD 15.532



   and so on......

编辑:那么如何让输出让每行编号?

稍后编辑

我的System.out.print正在从列表中打印出信息(从JSON,所有这些都解决了到Prasad Khode)这里是我的代码:

for (Manager iterator : managersList) {

    System.out.println(iterator.getName() + " - " + iterator.getSalary());
}

打印出来

Name - Salary

如何进行打印:

1. Name - Salary
2. Name - Salary

等等。 一个解决方案将非常受欢迎。感谢。

3 个答案:

答案 0 :(得分:2)

int i = 1;
while(something) {
    println(i + "." + SomeName);
    i++
}

这是你在找什么?

答案 1 :(得分:0)

如果您使用for循环打印记录,则可以使用

System.out.println((i+1)+". "+ record[i]);

答案 2 :(得分:0)

修改System.out.println()以便输出行号并非易事。您可以创建一个新的PrintStream子类(即out是什么),覆盖PrintStream中的所有适当方法,以便println(boolean)println(char)println(long)等所有打印在开头输出行号(在类本身中维护)。然后,创建它指向System.out并以某种方式将System.out重新附加到此PrintStream。这并非不可能,对于想要在系统内部陷入困境的人来说,这可能是一项值得做的事情,但有一个数字更容易实现这一目标。

首先,考虑只打印整个流,然后通过awk或某些此类程序进行管道传输。更容易,也不会搞乱事情。

假设您确实希望进入“这需要是Java的输出”,那么让我们创建一个包装类。

package com.michaelt.so.outwrapper;

import java.io.PrintStream;

public class Wrapper {
    static PrintStream out = System.out;
    static int lineNum = 1;

    static void println(String arg) {
        out.println((lineNum++) + ". " + arg);
    }

    static void printlnFancy(String arg) {
        out.printf("%3d. %s\n", lineNum++, arg);
    }
}

然后使用:

package com.michaelt.so.outwrapper;

public class Main {
    public static void main(String[] args) {
        for(char c = 'a'; c <= 'f'; c++) {
            Wrapper.println(""+c); // I just want a string
        }

        for(char c = 'A'; c <= 'F'; c++) {
            Wrapper.printlnFancy(""+c);
        }
    }
}

打印出来:

1. a
2. b
3. c
4. d
5. e
6. f
  7. A
  8. B
  9. C
 10. D
 11. E
 12. F

我不是说这是件好事。它涉及将所有System.out.println()更改为Wrapper类......但它实际上并不会导致System.out混乱,这可能会导致令人惊讶的事情。