如果长度为6个字符,如何在文本框中的第3个字符之后添加空格;如果长度为7个字符,如何在第4个字符之后添加空格

时间:2019-04-09 10:11:03

标签: c# wpf windows

我试图根据总字符在文本框中的第3个或第4个字符后添加一个空格。

例如,如果文本框值包含6个字符,则在第3个字符后添加一个空格。如果文本框值包含7个字符,则在第4个字符后添加一个空格。

在文本框中输入7个字符的示例

Before Lost Focus

Lost Focus

文本框中的6个字符的示例

Before Lost Focus

Lost Focus

我目前正在努力使其正常工作。

private void FirstPostcode_LostFocus(object sender, RoutedEventArgs e)
    {
        if (FirstPostcode.Text.Length == 3)
        {
            FirstPostcode.Text += " ";
        }
    }

任何帮助将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用Insert()在右侧第三个位置插入一个空格。

if (FirstPostcode.Text >= 3)
{
    FirstPostcode.Text = FirstPostcode.Text.Insert(FirstPostcode.Text.Length - 3, " ");
}

如果您要先检查是否已插入空格并且不想再次插入空格,则可以在字符串上使用索引器。

if (FirstPostcode.Text.Length == 3 
     || FirstPostcode.Text.Length >= 4
        && FirstPostcode.Text[FirstPostcode.Text.Length - 4] != ' ')
{
    FirstPostcode.Text = FirstPostcode.Text.Insert(FirstPostcode.Text.Length - 3, " ");
}

答案 1 :(得分:0)

尝试以下操作:

            string[] inputs = { "NR105BE", "BD11AA" };

            foreach (string input in inputs)
            {
                string output = "";
                if (input.Length == 7)
                {
                    output = input.Substring(0, 4) + " " + input.Substring(4);
                }
                else
                {
                    output = input.Substring(0, 3) + " " + input.Substring(3);
                }
                Console.WriteLine(output);
            }
            Console.ReadLine();