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
,这样它就工作了,谢谢!