String.format("%1s","").equals("")); // --> return false !
String.format("%1s","").equals(" ")); // --> return true !
答案 0 :(得分:12)
空格由格式说明符
中的最小宽度值1
指定
String.format("%1s","").equals(" ")
^
答案 1 :(得分:1)
您想要添加像这样的参数索引
String.format("%1$s", ""); //returns ""
String.format("%2$s %1$s", "a", "b"); //returns "b a"
您的代码定义了“宽度”
String.format("%3s", ""); // returns " ";
String.format("%3s", "a"); // returns " a";
String.format("%-3s", "a"); // returns "a ";
阅读本文以获取更多信息: http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax
答案 2 :(得分:1)
这里%1s
是一个没有任何参数的格式说明符。无参数格式说明符的一般语法如下
%[flags][width]conversion
其中
可选的标志是一组修改输出格式的字符。有效标志集取决于转换。
和
可选宽度是一个非负十进制整数,表示要写入输出的最小字符数。
因此,1
指定宽度,以下是您获取" "
而不是""
的原因背后的描述
宽度是要写入输出的最小字符数。如果转换值的长度小于宽度,则输出将用''(\ u0020')填充,直到总字符数等于宽度。默认情况下,填充位于左侧。如果给出' - '标志,则填充将在右侧。如果未指定宽度,则没有最小值。
PS: \ u0020 是Space
的Unicode字符。
希望这有帮助。