用逗号将Integer转换为String

我想转换一个Integer 35634646有一千个“,”所以它应该是35,634,646。

什么是最快的方法呢?

System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646)); 
 Output: 35,634,646 

你要求最快,但也许你的意思是“最好”,“正确”或“典型”?

您还要求逗号表示数千个字符,但也许您的意思是“根据用户的本地习惯以正常的人类可读forms”?

你这样做:

  int i = 35634646; String s = NumberFormat.getIntegerInstance().format(i); 

美国人将得到“35634646”

德国人将得到“35.634.646”

瑞士德国人将获得“35'634'646”

 int bigNumber = 1234567; String formattedNumber = String.format("%,d", bigNumber); 
  int value = 35634646; DecimalFormat myFormatter = new DecimalFormat("#,###"); String output = myFormatter.format(value); System.out.println(output); 

产量:35634646

 double value = 21403.3144d; String.format("%,.2f", value); 

产量

 21,403.31 

其他答案是正确的,但在使用"%,d"之前仔细检查您的语言环境:

 Locale.setDefault(Locale.US); int bigNumber = 35634646; String formattedNumber = String.format("%,d", bigNumber); System.out.println(formattedNumber); Locale.setDefault(new Locale("pl", "PL")); formattedNumber = String.format("%,d", bigNumber); System.out.println(formattedNumber); 

结果:

 35,634,646 35 634 646 

这个解决scheme为我工作:

 NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number")); 

你不能用一个

 System.out.printf("%n%,d",int name); 

printf的逗号应该将逗号join%d inter。

不积极的,但为我工作。

如果在JSP中必须完成相同的操作,请使用:

 <fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" /> <c:out value="${formattedVariable}"></c:out> 

ofcourse多个值使用:

 <c:forEach items="${yourlist}" var="yourlist"> <fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" /> <c:out value="${formattedVariable}"></c:out> </c:forEach> 

首先你需要包含JSTL标签:

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

在页面的开始