我想将一个整数35634646转换为1000个“”,所以它应该是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

其他回答

其他答案都是正确的,但是在使用“%,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

这是一种方法,也可以替换默认分隔符与任何字符:

val myNumber = NumberFormat.getNumberInstance(Locale.US)
   .format(123456789)
   .replace(",", "،")
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
 int value = 35634646;
 DecimalFormat myFormatter = new DecimalFormat("#,###");
 String output = myFormatter.format(value);
 System.out.println(output);

输出:35634646

整数:

int value = 100000; 
String.format("%,d", value); // outputs 100,000

双打:

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

字符串。格式是非常强大的。

- 根据psuzzi反馈编辑。