对于我的学校,我需要制作一个程序,检查您是否提供了正确的邮政编码:例如,它必须采用以下格式:0000 XX。 这是荷兰的邮政编码。
我试图找出如何做到这一点,但我真的不知道如何解决这个问题。 我不能使用正则表达式,因为我们还没有学到这一点。
我允许使用的事件:
TextChanged
KeyDown
KeyPress
KeyUp
我允许使用的功能:
char.isNumber();
char.isLetter();
如果有人能帮助我,那就太棒了。 提前谢谢。
答案 0 :(得分:2)
作为家庭作业的帮助:
在OnTextChanged事件中迭代字符串:
if string is longer than 7?: fail
for each character in string:
if char-pos <= 4 && character is not number: fail
if char-pos == 5 && character is not whitespace: fail
if char-pos > 5 && character is not letter: fail
end
祝你好运。
答案 1 :(得分:2)
相对而言,您可以使用RegEx - 因为RegEx是我们都会使用的正确解决方案。不要害怕从你的课程中走出来并自己学习东西......
但是,坚持你强调的功能......
using System;
namespace SO5
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Hello World!");
Console.WriteLine(TestPostcode("1234 XC"));
Console.WriteLine(TestPostcode("D4 XC"));
Console.WriteLine(TestPostcode("4632 XC1"));
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
public static bool TestPostcode(string input)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (char c in input)
{
if (char.IsLetter(c))
{
sb.Append("L");
}
else if (char.IsNumber(c))
{
sb.Append("N");
}
}
return sb.ToString() == "NNNNLL";
}
}
}
现在,如果你想留下深刻印象,请阅读有关单元测试和名为NUnit的(免费)产品的内容。然后,您将能够随意使用测试用例执行您的方法,同时还可以进行有效的测试以确保该事物仍然可用...
答案 2 :(得分:1)
你可以通过几种方式解决这个问题,但我会告诉你如何做到这一点。
处理TextChanged,并在该方法中获取输入文本的字符串。
遍历每个字符,并根据位置检查您要查找的字符类型。