정수를 수천 개의 쉼표로 문자열로 변환
Integer 35634646을 1,000 "으로 변환하고 싶기 때문에 35,634,646이 될 것입니다.
어떻게 하면 가장 빨리 할 수 있을까요?
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
가장 빠른 것을 요구하고 있습니다만, 「최상의」, 「올바른」, 또는 「표준적인」의 어느 쪽인가.
또한 쉼표를 사용하여 수천 개를 나타내도록 요구하지만, "사용자의 현지 관습에 따라 사람이 읽을 수 있는 일반적인 형식"을 의미할 수도 있습니다.
다음과 같이 합니다.
int i = 35634646;
String s = NumberFormat.getIntegerInstance().format(i);
미국인들은 "35,634,646"을 받을 것이다.
독일인은 35.634.646을 받는다.
스위스 독일인은 35'634'646을 받을 것이다.
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
정수:
int value = 100000;
String.format("%,d", value); // outputs 100,000
2배:
double value = 21403.3144d;
String.format("%,.2f", value); // outputs 21,403.31
- psuzi 피드백에 따라 편집.
int value = 35634646;
DecimalFormat myFormatter = new DecimalFormat("#,###");
String output = myFormatter.format(value);
System.out.println(output);
출력:35,634,646
다른 답변은 맞지만 사용하기 전에 로케일을 재확인해 주세요."%,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
확장 사용
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
이 솔루션은 나에게 효과가 있었다.
NumberFormat.getNumberInstance(Locale.US).format(Integer.valueOf("String Your Number"));
를 사용합니다.%d
형식 지정자를 쉼표로 지정합니다.%,d
이것이 단연코 가장 쉬운 방법이다.
여기에서는, 「number format」나 「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
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>
다음과 같이 기본 구분 기호를 원하는 문자로 바꿀 수도 있습니다.
val myNumber = NumberFormat.getNumberInstance(Locale.US)
.format(123456789)
.replace(",", "،")
a를 사용할 수 없습니까?
System.out.printf("%n%,d",int name);
의 콤마printf
에 콤마를 추가합니다.%d
인터럽트 합니다.
긍정적이진 않지만 나한테는 효과가 있어.
먼저 JSTL 태그를 포함해야 합니다.-
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
페이지 첫머리에
언급URL : https://stackoverflow.com/questions/7070209/converting-integer-to-string-with-comma-for-thousands
'source' 카테고리의 다른 글
데이터베이스 수준에서 쿼리를 통해 직렬화 해제 (0) | 2022.09.15 |
---|---|
.hprof 파일을 분석하려면 어떻게 해야 하나요? (0) | 2022.09.15 |
sql 키워드 'like'를 사용하여 암호화된 데이터를 검색하는 방법 (0) | 2022.09.15 |
웹 브라우저에 푸시 알림을 보내는 방법 (0) | 2022.09.15 |
어떻게 내 타입 힌트에 기능 형식을 지정할 수 있을까요? (0) | 2022.09.15 |