繁体   English   中英

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

[英]How to convert an integer according to international number system in java (Number Formatting)

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

345678 -> 345,678
12 -> 12 
123 -> 123
4590 -> 4,590

这是代码片段和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 ?
}

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

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

有什么建议么 ?

您可以将NumberFormatLocale#US

NumberFormat.getNumberInstance(Locale.US).format(number);

或者DecimalFormat

DecimalFormat formatter = new DecimalFormat("#,###");
String newNumber = formatter.format(number);

使用NumberFormat

http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html#getInstance(java.util.Locale)

您可以在区域设置中传递它,然后根据需要format数字

http://docs.oracle.com/javase/7/docs/api/java/text/NumberFormat.html#format(long)

System.out.println (NumberFormat.getNumberInstance(Locale.US).format(1234567L));

您可以使用简单的NumberFormat类

NumberFormat numberFormat = NumberFormat.getInstance();
//allows to have number seperated by comma
numberFormat.setGroupingUsed(true);

String formattedNr = numberFormat.format(12345678L);
System.out.println("12345678L number formatted to " + formattedNr);

输出:

12345678L数字格式为12,345,678.00

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM