Java String.format无法完全工作?

Java String.format无法完全工作?,java,string,format,Java,String,Format,每当我打印TMP时,它似乎并没有按照我想要的方式正确地打印表 例如: STRING1=Test1和Test12 STRING2=你好 TMP = String.format("%-25s %25s", STRING1, STRING2); 为什么会发生这种情况?“Test12”比“Test1”多了一个字符。试试这个 Print: Test1 Hello Test12 Hello “Test12”比“Test1”多1个字符。试试这个 Print: Tes

每当我打印TMP时,它似乎并没有按照我想要的方式正确地打印表

例如:

STRING1=Test1和Test12 STRING2=你好

TMP = String.format("%-25s %25s", STRING1, STRING2);
为什么会发生这种情况?

“Test12”
“Test1”
多了一个字符。试试这个

Print:
Test1           Hello
Test12           Hello
“Test12”
“Test1”
多1个字符。试试这个

Print:
Test1           Hello
Test12           Hello

很可能您的字符串已经填充了空格

String.format("%-25s\t%25s", string1, string2);
印刷品

for (String s1 : "Test1,Test12,Test123,Test1234,Test12                    ".split(",")) {
    String tmp = String.format("%-25s %25s", s1, "hello");
    System.out.println(tmp);
}
您可以在尝试格式化它们之前
trim()

Test1                                         hello
Test12                                        hello
Test123                                       hello
Test1234                                      hello
Test12                                         hello

很可能您的字符串已经填充了空格

String.format("%-25s\t%25s", string1, string2);
印刷品

for (String s1 : "Test1,Test12,Test123,Test1234,Test12                    ".split(",")) {
    String tmp = String.format("%-25s %25s", s1, "hello");
    System.out.println(tmp);
}
您可以在尝试格式化它们之前
trim()

Test1                                         hello
Test12                                        hello
Test123                                       hello
Test1234                                      hello
Test12                                         hello

我怀疑一张账单不是OP需要的。可能他们想把“Test1”和“Test12”放在一个25个字符的空格填充列中。是的,我想确保分配了一定数量的空格。这保证了每个字符串总是从第n个字符开始。@AlexanderKhaosGreenstein那么Peters解决方案可能是这里更可能的解决方案。我怀疑制表符不是OP需要的。可能他们想把“Test1”和“Test12”放在一个25个字符的空格填充列中。是的,我想确保分配了一定数量的空格。这可以确保每个字符串总是从第n个字符开始。@AlexanderKhaosGreenstein那么Peters解决方案可能是更可能的解决方案避免使用所有大写字母作为变量名;在Java中,这是一个表示常量的约定;在Java中,这是一种表示常量的约定。