如何在字符串C#中的最后3个字符前插入空格?

时间:2016-03-30 16:28:00

标签: c#

我正在使用Windows表单,我正在构建用户进入英国邮政编码的应用程序。

UK PostCode在最后3个字符前面包含空格,例如:

L22 9QYL5 3SGWA10 4RT所以在最后3个字符之前总是有空格。我想要做的是:当用户像这样L53SG输入他们的PostCode时,我想在最后3个字符之前插入空格,使其像L5 3SG一样。

说我们有:

string PostCode = "L53SG"; 

如何在PostCode字符串中的最后3个字符之前插入空格?

任何人都知道如何做到这一点。谢谢

3 个答案:

答案 0 :(得分:5)

您可以使用string.Insertstring.Length轻松完成此操作:

string insertedStr = str.Insert(str.Length - 3, " ");

string.Length将返回string的长度,并将其减去3,您可以获得要插入space的索引位置。

最后,您只需使用string.Insert(index, value)插入替换string(在您的情况下为空格(" "))

答案 1 :(得分:4)

postCode = postCode.Replace(" ", "");
if (postCode.Length > 3)
    postCode = postCode.Insert(postCode.Length - 3, " ");

首先删除那里的所有空格,然后确保至少有3个字符(我们可能希望在这种情况下抛出异常,因为它不是您使用其余部分的有效输入)并插入空格3个空格回来。

可以看到用户是否输入了一个空格,如果他们这样做就跳过该过程,但这种方式更简单,并且可以捕获用户在错误的地方添加一个空格的情况。

答案 2 :(得分:3)

如果您需要,可以先删除字符串中的任何空格:

PostCode = PostCode.Replace(" ", string.Empty);

然后,使用Insert()方法:

string PostCode = "L53SG";
PostCode = PostCode.Insert(PostCode.Length - 3, " ");