2016-03-18 8 views
0

У меня есть небольшая проблема с использованием PadLeft и PadRight. Так что я в моем коде, что пользователь может ввести символ, который они хотят использовать для заполнения и сколько символов они хотят положить в Как это:.PadLeft и 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) 

Теперь проблема у меня возникает, когда я запускаю код, поскольку он у меня над ним ничего не делает. Он просто дает мне текстовую газонокосилку без каких-либо прикосновений. Должен ли я что-то изменить в своем коде, чтобы он работал, или я использую для этого неправильные переменные? Потому что, когда я использую PadCharacter как String, чтобы я получаю сообщение об ошибке

Не удается неявно преобразовать строку в обугливается.

+0

Я смотрел дальше в своем коде и почему-то во время конвертации или где-то еще. 48 '*' получается из переменной im, использующей. Так что, я думаю, что в 48-м есть что-то, что прикручивает мой Pad. – Blasje

ответ

1

Вы неправильно понимаете, как работает PadLeft(). Длина, которую вы указываете как параметр (в вашем случае AmountOfCharacters), не определяет, сколько символов вы хотите добавить, но сколько символов должно иметь строка в конце (по крайней мере).

Так что, когда вы укажете строку «Газонокосилка» и «Суммарное изображение» = 5, ничего не произойдет, потому что слово «Газонокосилка» уже имеет длину более 5 символов.

1

Если StartString количество часов меньше, то AmountOfCharacters вы можете видеть звезды infront от StartString. Число звезд будет [AmountOfCharacters] - [StartString Character Count]

0

Строка представляет собой последовательность символов, но не сам персонаж - вот почему Convert.ToChar терпит неудачу с исключением. Попробуйте TextBoxPadCharacter [0], чтобы получить первый символ ввода пользователя. Вам также необходимо проверить, что вход не пуст.