使用逗号将整数转换为字符串数千

时间:2011-08-15 20:10:38

标签: java string integer

我想将整数35634646转换成千位“,”因此它应该是35,634,646。

这样做最快的方法是什么?

14 个答案:

答案 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" %> 

在页面开头