在Java中如何用下划线填充数字?
在Java中,如何用下划线代替通常的零填充数字 比如我想要在Java中如何用下划线填充数字?,java,number-formatting,Java,Number Formatting,在Java中,如何用下划线代替通常的零填充数字 比如我想要 123.45格式为uuuuuu 123.45和 12345.67格式为_12345.67 0.12格式为\uuuuuuuuuuuuu.12 我尝试了很多东西,最接近的是这个(通过使用符号。setZeroDigit(“”)): 好的,不是很接近,但如果格式正确(带尾随下划线),则为空: \uuuuuu,\uuuuuuu\uuuuuu 总之,关于如何获得预期行为的建议 "_________".substring( num.length
- 123.45格式为uuuuuu 123.45和
- 12345.67格式为_12345.67
- 0.12格式为\uuuuuuuuuuuuu.12
"_________".substring( num.length() )+num;
其中,num
是保存您的号码的字符串。要将double
转换为String
,可以使用double.toString(myDouble)
您可以使用Apache Commons库中的方法
// pad to 10 chars
String padded = StringUtils.leftPad("123.456", 10, '_');
// padded will be equal to "___123.456"
达达
import java.text.DecimalFormat;
class F {
public static void main( String ... args ) {
DecimalFormat f = new DecimalFormat("000,000.00");
for( double d : new double[]{ 0.01, 0.12, 123456, 123456.78, 1234, 1234.56 }){
System.out.println(
f.format(d).replaceAll("0","_").replaceAll("_,_","__")
);
}
}
}
输出:
______._1
______.12
123,456.__
123,456.78
__1,234.__
__1,234.56
也许替换可以一步完成,但我会告诉你的。十进制符号。setZeroDigit
用于设置字符以表示零以及其后的所有其他数字下面是
,这就是为什么你看到的是>\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu1`Edit:格式不起作用,但你应该明白了。是的,我知道setZeroDigit是如何工作的,但我想找到一个解决办法来实现预期的
产生的是123456.78
而不是123456.78
我不确定Marcelo,比如OP期望\uuuuuuuuuuu.\u1
为0.01
而不是\uuuuuuuuu.01
。从最初的问题中,我选择了“预期…”并用断言进行测试。看这里:所以,根据OP预期,这段代码做了需要做的事情。那么0.01应该填充到谁呢?\uuuuuuuuu1?@Belun你是对的,实现询问者需求的唯一方法是开发一个用户方法。
______._1
______.12
123,456.__
123,456.78
__1,234.__
__1,234.56