Java 将1d数组格式化为表时出现问题 System.out.println(“原始温度”+“\t温度在C”+“\t温度在F”+“\t温度在K”); 对于(int j=0;j=大小){ 返回str; } 最终StringBuilder=新StringBuilder(); 对于(int i=0;i
我不确定这是否是对该数组进行表化的正确方法,但它基本上是有效的。问题是元素之间存在奇怪的非统一空格,我不知道为什么。我已经尝试过添加制表符/空格,但没有任何效果 我会选择Java 将1d数组格式化为表时出现问题 System.out.println(“原始温度”+“\t温度在C”+“\t温度在F”+“\t温度在K”); 对于(int j=0;j=大小){ 返回str; } 最终StringBuilder=新StringBuilder(); 对于(int i=0;i,java,arraylist,format,Java,Arraylist,Format,我不确定这是否是对该数组进行表化的正确方法,但它基本上是有效的。问题是元素之间存在奇怪的非统一空格,我不知道为什么。我已经尝试过添加制表符/空格,但没有任何效果 我会选择String#format()/System.out.printf(): System.out.printf(“%21s%9s%9s%9s%9s\n”, df.format(/*…*/), df.format(/*…*/), df.format(/*…*/), 格式(/*…*/); %9s表示:长度为9个字符的字符串。如果字符
String#format()
/System.out.printf()
:
System.out.printf(“%21s%9s%9s%9s%9s\n”,
df.format(/*…*/),
df.format(/*…*/),
df.format(/*…*/),
格式(/*…*/);
%9s
表示:长度为9个字符的字符串。如果字符串短于9个字符,则在前面加空格,因此文本是右对齐的。如果希望文本左对齐,则可以使用%9s
System.out.printf(“%11s |%9s |%9s |%9s\n”、“原始温度”、“C中温度”、“F中温度”、“K中温度”);
System.out.printf(“%11s |%9s |%9s |%9s\n”、“213.0”、“99.6”、“213.0”、“372.7”);
System.out.printf(“%11s |%9s |%9s |%9s\n”、“321.0”、“321.0”、“609.8”、“594.1”);
产生:
System.out.println("Original Temperature" + "\t Temp in C" + "\t Temp in F" + "\t Temp in K");
for(int j =0; j < temperatureArray.size(); j++) {
System.out.println("\t" + df.format(temperatureArray.get(j).getDegrees()) + "\t" + "\t" + " " + df.format(temperatureArray.get(j).getCelsius())+ "\t" + "\t" + df.format(temperatureArray.get(j).getFahrenheit()) + "\t" + "\t" + df.format(temperatureArray.get(j).getKelvin()));
Orig. Temp. | Temp in C | Temp in F | Temp in K
213.0 | 99.6 | 213.0 | 372.7
321.0 | 321.0 | 609.8 | 594.1
(或左对齐:%-9s
)
(或居中)
private static void print(){
//标题
系统输出打印F(“%11s |%9s |%9s |%9s\n”、“原始温度”、“C中温度”、“F中温度”、“K中温度”);
//价值观
System.out.printf(“%-11s |%-9s |%-9s |%-9s\n”),中心(“213.0”,11),中心(“99.6”,9),中心(“213.0”,9),中心(“372.7”,9”);
System.out.printf(“%-11s |%-9s |%-9s |%-9s\n”),中心(“321.0”,11),中心(“321.0”,9),中心(“609.8”,9),中心(“594.1”,9));
}
私有静态字符串中心(字符串str,int size){
如果(str.length()>=大小){
返回str;
}
最终StringBuilder=新StringBuilder();
对于(int i=0;i<(size-str.length())/2;i++){
生成器。附加(“”);
}
附加(str);
对于(int i=0;i<(builder.length()-size);i++){
生成器。附加(“”);
}
返回builder.toString();
}
产生:
System.out.println("Original Temperature" + "\t Temp in C" + "\t Temp in F" + "\t Temp in K");
for(int j =0; j < temperatureArray.size(); j++) {
System.out.println("\t" + df.format(temperatureArray.get(j).getDegrees()) + "\t" + "\t" + " " + df.format(temperatureArray.get(j).getCelsius())+ "\t" + "\t" + df.format(temperatureArray.get(j).getFahrenheit()) + "\t" + "\t" + df.format(temperatureArray.get(j).getKelvin()));
Orig. Temp. | Temp in C | Temp in F | Temp in K
213.0 | 99.6 | 213.0 | 372.7
321.0 | 321.0 | 609.8 | 594.1
可以使用字符串填充使每列具有相同的字符数
Orig. Temp. | Temp in C | Temp in F | Temp in K
213.0 | 99.6 | 213.0 | 372.7
321.0 | 321.0 | 609.8 | 594.1
String padToRight(字符串输入、字符串填充、int-length){
while(input.length()
padToRight(“hello”,“”,7)
将返回“hello”
如何居中以及如何增加缩进的大小?如果要将文本居中,请查看-如果要增加缩进的大小,只需修改%
和s
之间的数字:9个字符缩进(右)%9s
,4个字符缩进(左)%4s
,这样它就工作了,谢谢!