Преобразование целого в String с запятой для тысяч

Я хочу преобразовать Integer 35634646, чтобы иметь тысячу "," поэтому это должно быть 35,634,646.

Каким будет самый быстрый способ сделать это?

Ответ 1

System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646

Ответ 2

Вы спрашиваете быстрее, но, возможно, вы имеете в виду "лучший" или "правильный" или "типичный"?

Вы также запрашиваете запятую, чтобы указать тысячи, но, возможно, вы имеете в виду "в обычной удобочитаемой форме в соответствии с местным обычаем вашего пользователя"?

Вы делаете это так:

    int i = 35634646;
    String s = NumberFormat.getIntegerInstance().format(i);

Американцы получат "35,634,646"

Немцы получат "35.634.646"

Швейцарские немцы получат "35'634'646"

Ответ 3

int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);

Ответ 4

 int value = 35634646;
 DecimalFormat myFormatter = new DecimalFormat("#,###");
 String output = myFormatter.format(value);
 System.out.println(output);

OUTPUT: 35,634,646

Ответ 5

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

Выход

21,403.31

Ответ 6

Другие ответы верны, однако дважды проверьте свой язык перед использованием "%,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

Ответ 7

Это решение работало для меня:

NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number"));

Ответ 8

Вы не можете использовать

System.out.printf("%n%,d",int name);

Запятая в printf должна добавлять запятые в интервал %d.

Не положительно, но работает для меня.

Ответ 9

Если это необходимо сделать в 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

Сначала вам нужно включить теги JSTL: -

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

в начале страницы