2011-12-17 9 views
0

申し訳ありませんが、このような簡単な質問はありますが、生成されてからsetTextに送信される乱数の間にスペースを挿入する方法はありますか?setTextで数字の間にスペースを追加する

それは今########表示しますが、私はそれが#### ####

text = (TextView) findViewById(R.id.tv_randnumber); 
text.setText(String.valueOf((int) (Math.random() * 100000000))); 

答えて

1

として表示したい私は、この提案:

text = (TextView) findViewById(R.id.tv_randnumber); 
String random = String.valueOf((int) (Math.random() * 100000000)); 
String one = random.substring(0, 4); 
String two = random.substring(4, 8); 
text.setText(one + " " + two); 

これを働かなければならない。

+0

ありがとうございました!よく働く! – duggerd

+0

注意しなければならないことの1つ:ループなどでこれを何度も実行する場合は、文字列の過度の作成を避けるために、より最適化された解決策を検討するとよいでしょう(ここでは4つの異なる文字列インスタンス1回の修正に使用される)。 – Jave

1

これはおそらく、万人に正しい答えを持っているこれらの質問の一つであり、ここでそれを行うための一つの方法です:

String string = String.valueOf((int) (Math.random() * 100000000)); 
string = new StringBuilder(string).insert(4, ' ').toString(); 
0
int i=(int)Math.random() * 100000000 ; 
    int rem= i%10000; 
    int i=i/10000; 
    text.setText(String.valueOf(i+" " +rem)); 
1

String.format(String, Object...)は、フォーマッタの機能にアクセスするための便利なメソッドです。最初のパラメータは、いくつかのフラグをサポートする 'フォーマット文字列'です。多数のためのセパレータをグループ化するための

フラグが,はそうあなたが書くことができます:

text.setText(String.format("%,d", (int)(Math.random() * 100000000))) 

利用可能なすべてのフラグはロケールのグループ化(千)のセパレータを使用することになる。このように

Formatterを参照してください。このセパレータをカスタマイズする場合は、次のようにする必要があります。

DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setGroupingSeparator(' '); 
DecimalFormat df = new DecimalFormat("###,###", dfs); 
text.setText(df.format(Math.random() * 100000000)); 
+0

Works - text.setText(String.format( "%、d"、(int)(Math.random()* 100000000))) –

関連する問題