我需要用破折号将String填充到一定长度,例如:
cow-----8
cow-----9
cow----10
...
cow---100
Run Code Online (Sandbox Code Playgroud)
字符串的总长度需要为9.前缀"cow"是常量.我正在迭代输入数字.我可以用丑陋的方式做到这一点:
String str = "cow";
for (int i = 0; i < 1000; i++) {
if (i < 10) {
str += "-----";
}
else if (i < 100) {
str += "----";
}
else if (i < 1000) {
str += "---";
}
else if (i < 10000) {
str += "--";
}
str += i;
}
Run Code Online (Sandbox Code Playgroud)
我可以用字符串格式更干净地做同样的事吗?
谢谢
pol*_*nts 10
int[] nums = { 1, 12, 123, 1234, 12345, 123456 };
for (int num : nums) {
System.out.println("cow" + String.format("%6d", num).replace(' ', '-'));
}
Run Code Online (Sandbox Code Playgroud)
这打印:
cow-----1
cow----12
cow---123
cow--1234
cow-12345
cow123456
Run Code Online (Sandbox Code Playgroud)
关键表达是这样的:
String.format("%6d", num).replace(' ', '-')
Run Code Online (Sandbox Code Playgroud)
这使用String.format数字转换,宽度为6的右对齐填充空格.然后我们replace用破折号每个空格(如果有的话).
可选地,由于前缀在这种特定情况下不包含任何空间,您可以将牛带入:
String.format("cow%6d", num).replace(' ', '-')
Run Code Online (Sandbox Code Playgroud)
java.util.Formatter - 用于完整格式化语法| 归档时间: |
|
| 查看次数: |
10212 次 |
| 最近记录: |