我有一些代码假设输入不超过6位数。它会将该值填充为前导0,然后以“999”作为前缀,就像这样:
String.format("999%06d", 123); // => "999000123"
期望的输入现在已经超出6位数的最大限制,进入到7位数。这会产生10个字符的格式化输出(例如:
String.format("999%06d", 1000000); // => "9991000000"
),这破坏了我们的事情。问题:是否可能指定此字符串格式,以便它将保持与上述相同的逻辑,但如果输入为7位数,则只在前面加上两个“9”(同时仍然在小于等于6位数的情况下在前面加上三个“9”)?
为了帮助说明,这些是我们期望当值从6递增到7位时的输入/输出:
(Input) => (Formatted Output)
1 => "999000001"
999999 => "999999999"
1000000 => "991000000"
我知道还有其他方法可以实现这个目标,但是由于我们的情况比较特殊,所以我想问一下是否可以在一个单独的
String.format
调用中完成。
String.format
,但您可以使用s = s.substring(s.length() - 9)
作为格式化的结果。 - Youcef LAIDANI