2017-05-30 7 views
1

私はそれを行う方法が必要です。私はすでに長い間検索してきましたが、解決策は見つかりませんでした。フォーマット文字列[211659646] - > [211.659.646]

私はちょうど元、stringをフォーマットします:

100  -> 100 
1000 -> 1.000 
10000 -> 10.000 
100000 -> 100.000 
1000000 -> 1.000.000 

など..

あなたはこの質問で私を助けることができますか?そのような問題のために何を勉強すべきですか?

感謝:D

+0

の可能性のある重複(https://stackoverflow.com/questions/5054132/ decimal-of-decimal-of-decimal-format-of-comma-to-dot-point) –

答えて

1

は(.)のドットを挿入するには:それに番号を渡す

DecimalFormat format = new DecimalFormat("#,###.000"); 

a 文字列(notあなた以来

private static String format(String s) { 
    if (s.length() <= 3) 
     return s; 
    int first = (s.length() - 1) % 3 + 1; 
    StringBuilder buf = new StringBuilder(s.substring(0, first)); 
    for (int i = first; i < s.length(); i += 3) 
     buf.append('.').append(s.substring(i, i + 3)); 
    return buf.toString(); 
} 

テスト

for (String s = "1"; s.length() <= 30; s += (s.length() + 1) % 10) 
    System.out.printf("%-30s -> %s%n", s, format(s)); 

出力

1        -> 1 
12        -> 12 
123       -> 123 
1234       -> 1.234 
12345       -> 12.345 
123456       -> 123.456 
1234567      -> 1.234.567 
12345678      -> 12.345.678 
123456789      -> 123.456.789 
1234567890      -> 1.234.567.890 
12345678901     -> 12.345.678.901 
123456789012     -> 123.456.789.012 
123456789-> 1.234.567.890.123 
123456789-> 12.345.678.901.234 
123456789-> 123.456.789.012.345 
123456789-> 1.234.567.890.123.456 
123456789-> 12.345.678.901.234.567 
123456789-> 123.456.789.012.345.678 
123456789-> 1.234.567.890.123.456.789 
123456789-> 12.345.678.901.234.567.890 
123456789-> 123.456.789.012.345.678.901 
123456789-> 1.234.567.890.123.456.789.012 
123456789-> 12.345.678.901.234.567.890.123 
123456789-> 123.456.789.012.345.678.901.234 
123456789-> 1.234.567.890.123.456.789.012.345 
123456789-> 12.345.678.901.234.567.890.123.456 
123456789-> 123.456.789.012.345.678.901.234.567 
123456789-> 1.234.567.890.123.456.789.012.345.678 
123456789-> 12.345.678.901.234.567.890.123.456.789 
123456789-> 123.456.789.012.345.678.901.234.567.890 

)は、すべての3つの位置で、終わりから始まる、あなたはこれを行うことができます特に文字列でそれを行うことを求められた場合、それは任意の文字列で行うことができます。

Hello World! -> Hel.lo .Wor.ld! 
+0

これはまさに私が探しているものです。ありがとう、とてもうまくいく:D – wellersonrd

1

コードサンプル:あなたは、いくつかの小数点をフォーマットする場合は、この作品

String number = "1000000.11"; 
double amount = Double.parseDouble(number); 
DecimalFormat f = new DecimalFormat("#,###.00"); 

System.out.printin(f.format(amount)); 

それとも、あなたは、次のようDecimalFormatを使用することができます

int i = 1000000; 
string s = NumberFormat.getIntegerInstance().format(i); 
1

を使用することができますに

System.out.println(format.format(#your-int)); 
0

のJava 8ソリューション:[?/ポイントをドットにカンマからのDecimalFormatの小数点区切り文字を変更する方法]

private static String format(String s) { 
    int groupCount = (s.length() + 2)/3; 
    return IntStream.range(0, groupCount).boxed() 
     .map (i -> s.substring(
      Math.max(0, s.length() - 3 * (groupCount - i)), 
      s.length() - 3 * (groupCount - 1 - i))) 
     .collect(Collectors.joining(".")); 
} 
関連する問題