java打印格式(数组/For循环)
这是我用java编写的第一个程序。为了我的生命,不管我做什么。这行不通( 这是我输出信息的方法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" + "**********************************
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]));