【问题标题】:PadLeft and PadRight using variables given in by userPadLeft 和 PadRight 使用用户提供的变量
【发布时间】:2016-07-05 09:54:49
【问题描述】:

我在使用 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)

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

无法将 String 隐式转换为 char。

【问题讨论】:

  • 我一直在进一步查看我的代码,并且出于某种原因在转换期间或某处。 48 '*' 由使用的变量 im 制成。所以我猜里面的 48 把我的 Pad 搞砸了。

标签: c# padding padleft


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-08-17
        • 2010-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-03
        • 2020-12-15
        • 2011-07-07
        相关资源
        最近更新 更多