我想将整数35634646转换成千位“,”因此它应该是35,634,646。
这样做最快的方法是什么?
答案 0 :(得分:260)
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
答案 1 :(得分:141)
你要求最快,但也许你的意思是“最好”或“正确”或“典型”?
你还要求逗号表示成千上万,但也许你的意思是“根据用户的本地习惯以正常的人类可读形式”?
你这样做:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
美国人将得到“35,634,646”
德国人将得到“35.634.646”
瑞士德国人将获得“35'634'646”
答案 2 :(得分:77)
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
答案 3 :(得分:29)
整数:
l3 = max((l1, l2), key = lambda i: i[2])
<强>双打:强>
int value = 100000;
String.format("%,d", value); // outputs 100,000
String.format is pretty powerful.
- 根据{{3}}反馈进行了编辑。
答案 4 :(得分:20)
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
OUTPUT:35,634,646
答案 5 :(得分:15)
其他答案都是正确的,但请在使用"%,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
答案 6 :(得分:2)
这个解决方案对我有用:
NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number"));
答案 7 :(得分:2)
将%d
格式说明符与逗号:%,d
这是迄今为止最简单的方法。
答案 8 :(得分:2)
使用扩展名
import java.text.NumberFormat
val Int.commaString: String
get() = NumberFormat.getInstance().format(this)
val String.commaString: String
get() = NumberFormat.getNumberInstance().format(this.toDouble())
val Long.commaString: String
get() = NumberFormat.getInstance().format(this)
val Double.commaString: String
get() = NumberFormat.getInstance().format(this)
结果
1234.commaString => 1,234
"1234.456".commaString => 1,234.456
1234567890123456789.commaString => 1,234,567,890,123,456,789
1234.456.commaString => 1,234.456
答案 9 :(得分:1)
如果必须在JSP中完成相同的操作,请使用:
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
用于多个值的使用:
<c:forEach items="${yourlist}" var="yourlist">
<fmt:formatNumber pattern="#,##0" value="${yourlist.yourintvalue}" var="formattedVariable" />
<c:out value="${formattedVariable}"></c:out>
</c:forEach>
答案 10 :(得分:0)
这是针对无法访问“ numberformat”或“ String.format”(在框架内使用Java的受限版本)的用户的解决方案。希望它有用。
number= 123456789;
thousandsSeparator=",";
myNumberString=number.toString();
numberLength=myNumberString.length;
howManySeparators=Math.floor((numberLength-1)/3)
formattedString=myNumberString.substring(0,numberLength-(howManySeparators*3))
while (howManySeparators>0) {
formattedString=formattedString+thousandsSeparator+myNumberString.substring(numberLength-(howManySeparators*3),numberLength-((howManySeparators-1)*3));
howManySeparators=howManySeparators-1; }
formattedString
答案 11 :(得分:0)
这是一种还可以让您用任何字符替换默认分隔符的方法:
val myNumber = NumberFormat.getNumberInstance(Locale.US)
.format(123456789)
.replace(",", "،")
答案 12 :(得分:-1)
你不能使用
System.out.printf("%n%,d",int name);
printf
中的逗号应将逗号添加到%d
inter。
对此并不积极,但对我有用。
答案 13 :(得分:-8)
首先,您需要包含JSTL标记: -
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
在页面开头