如何根据java中的国际号码系统转换整数(数字格式)

sac*_*024 3 java string integer number-formatting

我想根据国际号码系统转换给定的号码.// 例如:

345678 -> 345,678
12 -> 12 
123 -> 123
4590 -> 4,590
Run Code Online (Sandbox Code Playgroud)

这是代码片段和IdeOne链接

public static void main (String[] args) throws java.lang.Exception
{
    int number = 345678;
    String s = Integer.toString(number);
    s = putCommas(s);
}

private String putCommas(String s) {
    // How to put commas in string after every 3rd character from right ?
}
Run Code Online (Sandbox Code Playgroud)

这是我的方法,我不舒服.

  1. 从右侧开始遍历字符串
  2. 如果(length - currentIndex -1)%3 == 0在字符串中插入逗号

有什么建议 ?

Mar*_*oun 6

你可以用NumberFormatLocale#US:

NumberFormat.getNumberInstance(Locale.US).format(number);
Run Code Online (Sandbox Code Playgroud)

或者DecimalFormat:

DecimalFormat formatter = new DecimalFormat("#,###");
String newNumber = formatter.format(number);
Run Code Online (Sandbox Code Playgroud)