web-dev-qa-db-ja.com

整数をコンマを使用して文字列に変換する

整数35634646を変換して1000の ""にするため、35,634,646になります。

それを行う最も簡単な方法は何ですか?

158
Dominik
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
259
Eng.Fouad

最速を要求しますが、おそらく「最良」または「正しい」または「典型的な」という意味ですか?

また、数千を示すためにコンマを要求しますが、おそらく「ユーザーのローカル習慣に従って、通常の人間が読める形式で」という意味ですか?

あなたはそうします:

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

アメリカ人は「35,634,646」を取得します

ドイツ人は「35.634.646」を取得します

スイスのドイツ人は「35'634'646」を取得します

141
Steve McLeod
int bigNumber = 1234567;
String formattedNumber = String.format("%,d", bigNumber);
77
mopsled

整数:

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

ダブルス:

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

String.formatは非常に強力です。

- psuzzi フィードバックごとに編集。

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

出力 :35,634,646

20
Bala R

他の答えは正しいですが、"%,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
15

%d形式指定子をコンマで使用します:%,d

これがはるかに簡単な方法です。

2
Annie Johnson

このソリューションは私のために働いた:

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

同じことを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>
1

「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
0
user1807050