タイプの変数を追加し、int
それを使用して次のようなものを呼び出しました。
x.ToString("0000");
x
タイプに変更しましstring
たが、上記は無効になりました。x
今すぐフォーマットする唯一の方法は次のとおりです。
string.Format("{0:0000}",x);
またはショートカットはありますか?
文字列の作成に使用StringBuilder
しているので、同じことが当てはまりますAppendFormat
か?
タイプの変数を追加し、int
それを使用して次のようなものを呼び出しました。
x.ToString("0000");
x
タイプに変更しましstring
たが、上記は無効になりました。x
今すぐフォーマットする唯一の方法は次のとおりです。
string.Format("{0:0000}",x);
またはショートカットはありますか?
文字列の作成に使用StringBuilder
しているので、同じことが当てはまりますAppendFormat
か?
数値のように文字列をフォーマットすることはできないため、文字列に数値フォーマットを適用する場合は、最初に文字列を数値に解析する必要があります。
Int32.Parse(x).ToString("0000")
本当の近道はありません。
Int32
intが持つべき先行ゼロの数の概念はありません。
文字列にフォーマットすることで正しいことをしています。それを使って何かを表示しているのであれば、それは実際には問題ではないはずです(x
数値操作を実行したい場合はまだ問題があります)。
AppendFormat
のようstring.Format
に機能しますが、呼び出されたStringBuilderオブジェクトに追加されます。
残念ながら、これが最善の方法です。各タイプには、オーバーライドできる独自のToStringメソッドがあることに注意してください。int型のToStringを使用すると、文字列に変換するときに整数をフォーマットするためのフォーマットを渡すことができます。DateTimeも同様です。ただし、ソースはすでに文字列型であるため、文字列型のToStringは文字列のみを返します。文字列をフォーマットするには、string.Formatを呼び出す必要があります。
いいえ。
整数の文字列表現を実際の整数に変換して、必要な数の先行ゼロで正しくフォーマットできるようにする必要があります。
文字列がすでにその形式になっている場合、なぜそれを再フォーマットする必要があるのですか?
MSDNは、指定子を使用するいくつかの方法を示しています:http: //msdn.microsoft.com/en-us/library/fzeeb5cd.aspx#Y759
例
x.ToString("G");
このリンクには、すべての形式オプションが一覧表示されます:http: //msdn.microsoft.com/en-us/library/dwhawy9k.aspx
x.PadLeft(4, '0');
と同じ結果が得られます
x.ToString("0000");
それx
がまだ数字であるという条件で(それはそうなstring
ので、少なくともTryCast()
それを元に戻さずにそれを確認する方法はありません。
文字列補間を使用します(C#6から開始)。
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated
{<interpolationExpression>[,<alignment>][:<formatString>]}
あなたの例で:
$"{x:0000}"