Java 系统输出。如何对打印输出进行编号?(爪哇)
所以假设我打印出500名员工的巨大记录。打印出记录后,我希望它看起来像: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
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…
?给我您用于打印它的代码,我给您做您想做的事情的代码:)是的,这就是我要问的。我如何在每行输出之前添加这些数字。编辑了问题。非常抱歉,如果它看起来很模糊。ASystem.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