【问题标题】:Right Align String NumberFormat in JavaJava中的右对齐字符串NumberFormat
【发布时间】:2014-02-18 21:06:14
【问题描述】:

我需要使用加号将输入的数字字符串与掩码右对齐。

例如:

    String input = "893";
    String mask = "&&&&&&";

应该返回

    String output = "+++893";

我对如何使用 NumberFormat 和/或 DecimalFormat 实现这一点感到非常困惑,因为我以前没有使用过它们。任何帮助将不胜感激。

【问题讨论】:

  • 如果掩码比输入短怎么办?你是截断还是忽略?
  • 我会忽略的。但我已经检查过了。
  • String.format("%-6d", input) 呢?

标签: java string number-formatting right-align


【解决方案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。
    • 掩码也将成为输入的一部分。
    猜你喜欢
    • 2016-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多