在java中打印格式(数组/For 循环)



这是我的第一个Java程序。为了我的生活,无论我做什么。它不会不会不起作用。:(

这是我输出信息的方法。

private static int showAll(int[] order, String[] name, int last) 
{
int end = order.length;

System.out.println("     " + "The Godfather's Pizza" + "     " + "n" 
+ "**********************************" 
+ "n     Order Number" + "    Customern     -----------     ---------n");

    for (int i = 0; i < order.length; i++) 

        {
        System.out.printf("%6d %6d%s" + order[i] + name[i]);

            end = end + 1;
        }      
System.out.println("n          End of Report");

return end;
}

这是我的输出示例:

    The Godfather's Pizza     
**********************************
 Order Number    Customer
 -----------     ---------
  0              null
  0              null
  0              null
  0              null
  0              null
      End of Report

我的问题是...如何格式化我的输出?我知道如何在其他编程语言中,并且不认为这会如此痛苦?

System.out.printf("%6d %6d%s" + order[i] + name[i]);

尝试更改

System.out.printf("%6d %6d%s" + order[i] + name[i]);

更像是...

System.out.printf("%6d %15s", order[i], name[i]);

请记住,printf采用参数,这些参数定义了替换格式的值

您可能还想查看格式化字符串以获取更多详细信息

public class Test1 {
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        int[] order = new int[10];
        String[] name = new String[10];
        for (int index = 0; index < 10; index++) {
            order[index] = index;
            name[index] = Character.toString((char)(65 + index));
        }
        showAll(order, name, 1);
    }
    private static int showAll(int[] order, String[] name, int last) {
        int end = order.length;
        System.out.println("     " + "The Godfather's Pizza" + "     " + "n"
                        + "**********************************"
                        + "n     Order Number" + "    Customern     -----------     ---------n");
        for (int i = 0; i < order.length; i++) {
            System.out.printf("%6d %15sn", order[i], name[i]);
            end = end + 1;
        }
        System.out.println("n          End of Report");
        return end;
    }
}

请记住,您不能格式化null值,您需要提供适当的值或测试null条件,例如

System.out.printf("%6d %15sn", order[i], (name[i] == null ? "" : name[i]));

。例如

最新更新