【发布时间】:2018-12-22 14:23:56
【问题描述】:
所以我的问题是我必须计算 10^n 使得 n ~ 10^5。显然它不适合任何数据类型,因此我决定改用字符串。 最后,我确实在初学者书中找到了解决方案 https://beginnersbook.com/2014/07/java-right-padding-a-string-with-spaces-and-zeros/.
我不想要乘以 10 n 倍的 BigInteger 解决方案。
public class PadRightExample2 {
public static void main(String[] argv) {
System.out.println("#" + rightPadZeros("mystring", 10) + "@");
System.out.println("#" + rightPadZeros("mystring", 15) + "@");
System.out.println("#" + rightPadZeros("mystring", 20) + "@");
}
public static String rightPadZeros(String str, int num) {
return String.format("%1$-" + num + "s", str).replace(' ', '0');
}
}
输出:
#mystring00@
#mystring0000000@
#mystring000000000000@
谁能解释一下%1$- 是什么,s 是干什么用的?
【问题讨论】:
-
看了之后没明白所以才问的。
-
如果有人回答这个问题,我将不胜感激:)
-
您是否尝试阅读有关格式化程序的documentation?
-
Obviuosly it wouldn't fit in any data type- 这是错误的。对任意大小的数字使用BigDecimal。
标签: java string formatting zero-padding