0

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

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)

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

无法将 String 隐式转换为 char。

4

3 回答 3

1

如果StartString字符数较少,则AmountOfCharacters您可以看到前面的星星StartString。星星的数量将是 [AmountOfCharacters]-[StartString Character Count]

于 2016-03-18T15:20:46.567 回答
1

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

因此,当您指定字符串“Lawnmower”和 AmountOfCharacters = 5 时,什么都不会发生,因为单词 Lawnmower 的长度已经超过 5 个字符。

于 2016-03-18T15:19:17.083 回答
0

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

于 2016-03-18T15:25:38.730 回答