用逗号将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" %>
在页面的开始