2009-04-07 14 views
2

.NetのString.Format()が整数を2つのサブ文字列に分割することができるかどうか疑問に思っています。たとえば、私は3234という数字を持っていて、それを32X34としてフォーマットしたいと思います。私の整数は常に4桁または6桁です。これはString.Format()を使用して可能ですか?もしそうなら、どんなフォーマットの文字列が使えますか?String.Format()split integer value

P.S. 私はこれを行う他の方法があることを知っていますが、私は特にString.Format()がこれを処理できるかどうかを知ることに興味があります。

+0

@James - 6桁の数値分割方法を教えてください。あなたは明示的に指定していません。 – JeffH

答えて

11

あなたはジェームズString.Format

String.Format("{0:00x00}", 2398) // = "23x93" 
+0

+1私はそのショットを与えることができます。 – James

+0

4桁の数字の魅力のように機能します。おそらく、4桁と6桁の条件でJeffのソリューションのバリエーションを使用することになるでしょうが、難しい部分につきまとうための疑問点があります。 – James

+0

なぜ私はこれを試さなかったのですか?私はサブストリングを行っていました()ありがとう! :) –

-1

いいえ、できません。

実際、整数は整数ではないようです。おそらくそれらは、このようにフォーマットする独自のToString()メソッドを使用してクラスに格納する必要があります。

+0

ガー、投稿する前に少なくとも一度試してください。 – Samuel

+0

何を試してみませんか?私はToStringのオーバーライドを行ったし、それは動作します。私は以下のようなフォーマット文字列を一度もやっていないし、これまで見たこともありません。 –

4

を呼び出すときに、私はあなたが問題を完全に指定したかわからない、独自のフォーマットを指定することができます。

文字列のに 'x'を入れると、Samuel's answerは6桁の数字では機能しません。 String.Format("{0:00x00}", 239851)を返す代わりに、代わりに "239x851"

の "2398x51"、試してみてください。

String.Format(val<10000 ? "{0:00x00}" : "{0:000x000}", val) 

をいずれの場合も、この方法は、Composite Formattingと呼ばれています。

(数字は1000から999999の間であると仮定していますが、それでも1000から1009までの数字は 'x'の後の数字を不必要な '0'の先頭に '0'で表示します) 1010から999999までの値で有効です。)

+0

これは、彼が1234x56の代わりに123x456を望んでいると仮定しています。 – Samuel

+0

これが私がクラスを提案した理由です。彼は整数でデータを格納しているかもしれませんが、整数のセマンティクスは持っていません。 –

+0

+1私は、4桁と6桁の条件であなたのソリューションのバリエーションを使用します。 – James