Java中的右对齐字符串NumberFormat
Posted
技术标签:
【中文标题】Java中的右对齐字符串NumberFormat【英文标题】:Right Align String NumberFormat in Java 【发布时间】:2014-02-18 21:06:14 【问题描述】:我需要使用加号将输入的数字字符串与掩码右对齐。
例如:
String input = "893";
String mask = "&&&&&&";
应该返回
String output = "+++893";
我对如何使用 NumberFormat 和/或 DecimalFormat 实现这一点感到非常困惑,因为我以前没有使用过它们。任何帮助将不胜感激。
【问题讨论】:
如果掩码比输入短怎么办?你是截断还是忽略? 我会忽略的。但我已经检查过了。String.format("%-6d", input)
呢?
【参考方案1】:
如果您需要使用 DeciamlFormat,您可以使用:
int input = 893;
DecimalFormat decFormat = new DecimalFormat("000000"); //as many palces as you need
String output = decFormat.format(input);
然后用 + 号替换所有前导零。
String.format("%06d", input); //also gives you leading zeros
如果你总是想要 6 个位置,你仍然需要检查输出是否太长。
【讨论】:
【参考方案2】:你可以试试这个:如果掩码的长度大于输入的长度,取差值并在输入的前面添加那么多加号。
【讨论】:
虽然我不明白面具的意义。您可以简单地拥有所需的长度 是的,这是我的第一个想法,但我只是想问问是否有更优雅的方式使用 NumberFormat。 掩码也将成为输入的一部分。以上是关于Java中的右对齐字符串NumberFormat的主要内容,如果未能解决你的问题,请参考以下文章
是什么使我的WPF弹出窗口与其PlacementTarget的右边缘对齐?