我想将一个整数35634646转换为1000个“”,所以它应该是35,634,646。
最快的方法是什么?
我想将一个整数35634646转换为1000个“”,所以它应该是35,634,646。
最快的方法是什么?
当前回答
你要求最快,但也许你的意思是“最好”、“正确”或“典型”?
您还要求使用逗号来表示数千,但也许您的意思是“按照用户的本地习惯使用正常的人类可读格式”?
你可以这样做:
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
美国人将得到" 35634,646 "
德国人将得到“35.634.646”
瑞士籍德国人将得到"35'634'646"
其他回答
这里有一个解决方案,你谁不能访问“数字格式”或“字符串。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
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
输出:35634646
其他答案都是正确的,但是在使用“%,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
这个解决方案对我很有效:
NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number"));
首先,你需要包括JSTL标签:-
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
在页面的开头