Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 系统输出。如何对打印输出进行编号?(爪哇)_Java_Output_System.out - Fatal编程技术网

Java 系统输出。如何对打印输出进行编号?(爪哇)

Java 系统输出。如何对打印输出进行编号?(爪哇),java,output,system.out,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...... 但是…使用正常的打印输出命令,它看起来像: System.out.println(); 我的输出: Matthew J. $USD 28.404 Donna M

所以假设我打印出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......
但是…使用正常的打印输出命令,它看起来像:

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,所有这些都是thx向Prasad Khode解决的问题),下面是我的代码:

for (Manager iterator : managersList) {

    System.out.println(iterator.getName() + " - " + iterator.getSalary());
}
这是打印出来的

Name - Salary
如何使其打印:

1. Name - Salary
2. Name - Salary
等等。
一个解决方案将是如此的感激。谢谢。

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

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

这就是您要找的吗?

修改
System.out.println()
以便输出行号不是一件容易的事情。您可以创建一个新的PrintStream子类(这就是
out
是什么),重写PrintStream中所有适当的方法,以便
println(boolean)
println(char)
println(long)
等等,所有这些都在开始时打印出行号(在类本身中维护)。然后,指向
System.out
创建它,并以某种方式将
System.out
重新连接到此打印流。这并不是不可能的,对于那些想在系统的内部捣乱的人来说,这可能是一个值得去做的事情,但是有很多更简单的方法可以做到这一点

首先,考虑将整个流打印出来,然后通过管道或一些程序。容易得多,而且不会把事情弄得一团糟

假设您确实想进入“这需要是来自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);
        }
    }
}
package com.michaelt.so.outrapper;
公共班机{
公共静态void main(字符串[]args){

对于(char c='a';c您可以递增一个整数并打印它,后跟一个句点和一个空格。那么您是在问如何打印这些数字
1,2,3…
?给我您用于打印它的代码,我给您做您想做的事情的代码:)是的,这就是我要问的。我如何在每行输出之前添加这些数字。编辑了问题。非常抱歉,如果它看起来很模糊。A
System.out.print(++line+”)
在您的println之前执行是您所需要的。当然,假设500是以循环方式打印的。如果不是,请这样说。编辑的问题。我再次为没有正确解释问题而道歉。先生,祝您愉快!感谢您的解决方案。编辑的问题。再次为没有正确解释问题而道歉。我解决了我的问题with@Robingolet的解决方案。但是你花了很多时间和精力发布了这个非常详细的答案,所以谢谢你。令人惊讶的建议。我实际上在另一个项目中创建了包装器类,只是为了检查它是如何工作的。然而,使用上面批准的解决方案花费的时间更少。用最伟大的Benjamin Franklin的话说“时间就是金钱”。我真的很感谢你花时间和精力写下这个答案。再次感谢。
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