2012-01-09 25 views
0

私は現在、多くの数字を含む文字列番号を使用するAndroidプロジェクトに取り組んでいます。Androidのカンマ区切り文字列番号への文字列番号の変換

は、だから私は、インドのロケール形式カンマ区切りの文字列番号例えば(1,00,00,00,000)用に例えば1000000000ため列番号を変換する方法があるかどうかを知りたいです。

米国のロケールフォーマット文字列変換がありますが、インドのロケールフォーマットが必要です。

+1

米国のロケールフォーマットではどうでしたか? – curioustechizen

+0

@ techi.curious:それに従ってください... [リンク] http://stackoverflow.com/questions/6439447/how-to-convert-string-numbers-into-comma-seperated-integers-in-java – mobilemagic

答えて

1

私は(私はインドのためにen_INであると考えて)適切なロケールでフォーマッタオブジェクトを初期化することを確実にすること、Formatクラスのformat("% ,d", number)方法を使用します。

最初の場所で米国のロケールでどのようにコードを投稿したのかをコードで伝えれば、人々が手助けする方が簡単だと言えます。

+0

thnks bro私はformat()を使用して、私は望みの結果を得ました.... – mobilemagic

0

NumberFormatを使用する必要があるので、ユーザーの現在のロケール設定を使用して一般的なケースを作成することができます。

そして私はこれがあなたの現在の状況であることを考える:あなたは、複数の数値をフォーマットする場合は、フォーマットを取得し、システムについての情報を取得する必要がないように、それを複数回使う方が効率的だ

現地の言語や国の規則を何度も繰り返します。

NumberFormat nf = NumberFormat.getInstance(); 
for (int i = 0; i < a.length; ++i) { 
    output.println(nf.format(myNumber[i]) + "; "); 
} 
1

参考:Formatting a Number Using a Custom Format

private String getFormatedData(String unformatedData) { 
     if(unformatedData != null) { 
      try { 
       //unformatedData.replaceAll(",", ""); 
       Double result = Double.valueOf(unformatedData);    
       DecimalFormat myFormatter = new DecimalFormat("###,##0.00"); 
          //DecimalFormat myFormatter = new DecimalFormat("#,###,###"); 
          //If you don't want to show .00 format 
       return myFormatter.format(result); 
      } catch (NumberFormatException e) { 
       return unformatedData; 
      } 

     } else { 
      return "0.00"; 
     }  
    } 

このメソッドを使用します。

.00の値が不要な場合は、この方法を変更する必要があると思います。私はそれに取り組ませてください。

0

Pankaj Kumarによって与えられた答えは、インドのフォーマットではなく米国のフォーマットで出力されます。 あなたはそれが簡単に次のコードによって行うことができ、米国形式にしたい場合:ここに示されているように

NumberFormat.getNumberInstance(Locale.US).format(35634646) 

:インドフォーマットでカンマで文字列を取得するにはConverting Integer to String with comma for thousands

あなたは、このマニュアルのコード

を試すことができます
public String round(String d) 
{ 


    ArrayList<Integer> commas=new ArrayList<Integer>(); 
    String output=null; 
    char[] preDecimal=d.split("[.]")[0].toCharArray(); 
    int i=preDecimal.length-3; 
    System.out.println(i); 
    while(i>0) 
    { 
     commas.add(i); 
     i-=2; 
    } 

    StringBuilder sb=new StringBuilder(); 
    for(i=0;i<preDecimal.length;i++) 
    { 
     sb.append(preDecimal[i]); 
     if(commas.contains(i+1)) 
      sb.append(","); 



    } 

     output=sb.toString(); 

    return output; 

} 
関連する問題