PadLeft 和 PadRight 使用用户提供的变量

PadLeft and PadRight using variables given in by user

我在使用 PadLeftPadRight 时遇到了一个小问题。 所以我在我的代码中让用户可以输入他们想要用于填充的字符以及他们想要输入的字符数。像这样:

String StartString;
int AmountOfCharacters;
Char PadCharacter;

StartString = TextBoxString.Text(Lawnmower)
AmountOfCharacters = Convert.ToInt32(TextBoxAmountofCharacters.Text)    (Lets   Say 5)
PadCharacter = Convert.ToChar(TextBoxPadCharacter.Text)(Lets use *)

所以后来我放了。

Padding = String.PadLeft(AmountOfCharacters,PadCharacter)

现在我遇到的问题是 运行 上面的代码没有任何作用。 它只是给我一个没有任何 **** attached 的文本割草机。 我是否必须更改代码中的某些内容才能使其正常工作,或者我是否为此使用了错误的变量? 因为当我将 PadCharacter 用作 String 时,我收到一条错误消息

Cannot implicitly convert String to char.

您误解了 PadLeft() 的工作原理。您指定为参数的长度(在您的情况下为 AmountOfCharacters)并未指定要添加的字符数,而是字符串末尾应包含的字符数(至少)。

因此,当您指定字符串 "Lawnmower" 且 AmountOfCharacters = 5 时,不会发生任何事情,因为单词 Lawnmower 的长度已经超过 5 个字符。

StartString 个字符数少于 AmountOfCharacters 你可以在 StartString 前面看到星星。星星的数量将是 [AmountOfCharacters] - [StartString Character Count]

字符串是一个字符序列,但它本身不是一个字符 - 这就是 Convert.ToChar 失败并出现异常的原因。尝试 TextBoxPadCharacter[0] 获取用户输入的第一个字符。您还需要验证输入是否为空。