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的主要内容,如果未能解决你的问题,请参考以下文章

select2中的右对齐下拉菜单

Win32 选项卡控件中的右对齐选项卡项

引导列表组中的右对齐动画字体真棒图标

是什么使我的WPF弹出窗口与其PlacementTarget的右边缘对齐?

如何在 UIButton 的右边缘对齐 UIButton 图像

将 div 与图像的右边缘对齐