2011-06-30 20 views
3

文字の前に何度も文字を追加しようとしています。 C#のAMAIK、それはPadLeftです。PadLeftは機能しません

string firstName = "Mary"; 
firstName = firstName.PadLeft(3, '*'); // This should return ***Mary 

しかし、動作しません。私は何か間違っているのですか?

+0

それでは、代わりに何をしますか? –

答えて

15

最初の引数は「メアリー」4文字の長さと、返される文字列の長さの合計であり、あなたの最初の引数が3であることがわかり、それはなるだろう期待どおりに動作します。あなたはfirstName.PadLeft(6、「*」)しようとした場合は、**メアリー

3

いいえ、動作します。左に合計文字列の長さが3になるようにパッドが埋め込まれます。***Maryの結果が必要な場合は、firstName.PadLeft(7, '*');を使用する必要があります。

+0

申し訳ありませんが、上記は完全に正しいわけではありませんが、それはあなたの投稿から*文字を削除するように思えるからです。 –

+0

さらに、文字列の先頭に静的な量の文字を追加するだけの場合は、単にfirstName = "***" + firstNameを使用してください。 –

+1

このようなパディングはどうでしょうか: ".PadLeft(23)+ firstName; – amalgamate

4

を得るでしょうあなたはそのようなあなたの文字列の長さを追加する必要があります

firstName = firstName.PadLeft(firstName.Length + 3, '*'); 

最初のパラメータ(totalWidth)は、結果の文字列を表し、長さ文字列の長さがtotalWidthパラメータより小さい場合、PadLeftは結果文字列の長さがtotalWidthに等しいほど多くの文字を追加します。

関連する問題