2017-02-06 4 views
2

String.Formatを使用して文字列の先頭の文字を削除する方法があることが必要です。既存のコードには、文字列と書式文字列でしか渡せないという制限があります。String.Format()を使用して先頭の文字をトリミングする方法はありますか?

だから、あなたが

String.Format("Test output: {0:#}","001") 

ような何かをして出力

"テスト出力:1" を生成することができます

を私は答えが 'いいえ' であると思いますが、私は望んでいました確かめる。

EDIT:フォーマット文字列は設定ファイルに格納され、フォーマットされる文字列はデータベースから出力される値です。私はそれに任意のコードを実行することはできません。書式文字列を使用する必要があります。

+0

であなたをそれを行うための方法はありませんでしたTrimStart(「0」)引数_string_から先行ゼロをトリミングパラメータ – Steve

+2

ではありません通常の関数なので、サポートされていません。また、 '# '書式は数字のためのものです。 –

+1

いいえ、「String.Format」の特定のオーバーロードを単独で使用してこれを達成する方法はないと思います。 – Abion47

答えて

2

は、あなたはまた、あなたはおそらく見つけると、結果の文字列に正規表現を使用して置き換える行うことができ

String.Format("Test output: {0:#}", "001".TrimStart('0')) 

を渡している引数でそれを行うことができます。


他の代替定義およびIFormatProviderのカスタム実装を使用して、独自のフォーマッタに渡すことです。これが許可されているかどうか、あなたの最後の編集に基づいているかどうかはわかりません。


しかし、記載されている制限に基づいて、単にフォーマット文字列の入力

+0

数字が0.5の場合はサポートされていません。出力は ".5"になります – KernelMode

+0

@KernelMode - それには何が問題なのですか? '0.5 'は定義上1の先頭に0を持ち、' ​​.5'は依然として有効な値です。小数点以下の桁数は少なくとも1の先頭に0をつけなければならないという質問の言語には何もありませんでした。 – Igor

+0

@Igor残念ながら、私はTrimStartを実行できません。そうしないと、あなたの答えはうまくいくはずです。 KernelModeが何を話しているのかわからない – Kevin

関連する問題