Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.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打印格式(数组/For循环)_Java - Fatal编程技术网

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

java打印格式(数组/For循环),java,Java,这是我用java编写的第一个程序。为了我的生命,不管我做什么。这行不通( 这是我输出信息的方法 private static int showAll(int[] order, String[] name, int last) { int end = order.length; System.out.println(" " + "The Godfather's Pizza" + " " + "\n" + "**********************************

这是我用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" + "    Customer\n     -----------     ---------\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;
}
我的问题是…我如何格式化我的输出?我知道如何使用其他编程语言,但我不认为这会如此痛苦

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" + "    Customer\n     -----------     ---------\n");

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

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

            end = end + 1;
        }

        System.out.println("\n          End of Report");

        return end;
    }
}

…例如

你的问题是什么?格式化你的输出去做什么?
System.out.printf(“%6d%6d%s”,order[i],name[i]);
…你的问题是什么?我只想打印一个整数和一个字符串,并使用“一串空格”将其格式化,我认为这非常清楚。错误=线程“main”中的异常java.util.MissingFormatArgumentException:格式说明符“%s”无法格式化
null
值,可以使用
(名称[i]==null?”:名称[i])
为了克服它,或者实际上不传递空值…@Whitney可能是由于最后一个错误,您在格式字符串中留下了一个过多的
%
符号,或者您没有同时更改逗号的
+
符号。这里发生的情况是,每个
%
符号都是一个小序列的开始,该序列被一个rguments位于初始字符串之后。因此,如果您有三个
%
符号,则除了格式字符串之外,还需要三个参数。
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" + "    Customer\n     -----------     ---------\n");

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

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

            end = end + 1;
        }

        System.out.println("\n          End of Report");

        return end;
    }
}
System.out.printf("%6d %15s\n", order[i], (name[i] == null ? "" : name[i]));