2014-03-12 123 views
0

對於我的學校,我需要製作一個程序來檢查您是否在正確的郵政編碼中輸入:例如,它需要採用以下格式:0000 XX。 這是一個荷蘭郵政編碼。如何檢查郵政編碼是否在文本框中正確輸入C#

我試圖找出如何做到這一點,但我真的不知道如何解決這個問題。 我不能使用正則表達式,因爲我們還沒有學過。

說我允許使用的事件:

TextChanged 
KeyDown 
KeyPress 
KeyUp 

功能,我是允許使用的:

char.isNumber();
char.isLetter();

如果任何人都可以幫助我,那就太棒了。 在此先感謝。

+9

家庭作業類型問題可能無法得到解答我害怕。作爲程序員的喜悅是通過研究和原型設計來學習東西。嘗試每個事件,看看傳入的輸入是什麼;看看你是否可以接受這個輸入並且給它們應用'isNumber'和'isLetter'。 –

+0

它是您的Web應用程序或窗口應用程序? – SpiderCode

+0

窗體表單應用程序。 – Bas

回答

1

有幾種方法可以解決它,但我會給你一個提示,告訴我如何去做。

處理TextChanged,並在該方法中獲取輸入文本的字符串。

循環顯示每個字符,並根據位置檢查要查找的字符類型。

+0

我最終這樣做:if(!Char.IsNumber(e .KeyChar)&&!Char.IsLetter(e.KeyChar)) return; ((textBox1.Text.Length <4 &&!Char.IsNumber(e.KeyChar))||(textBox1.Text.Length> = 4 &&!Char.IsLetter(e.KeyChar))) e.Handled = if真正; – Bas

2

至於家庭作業幫助:

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 

好運:

在OnTextChanged事件經過串迭代。

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的(免費)產品。然後,您將能夠隨意使用測試用例來執行您的方法,同時還可以進行有效的測試,以確保它仍然可以正常工作...

+1

只是試圖downvote我自己的帖子回答作業的問題哈哈... –

+0

但這樣做是有價值的 - 如果學生不想回答一些令人尷尬的問題,那麼他必須研究爲什麼我使用了StringBuilder ......顯然,首先意識到RegEx,學生是不是一個木偶... –

+0

感謝您的答案,我自己做了這些答案幫助:-)真的有幫助 – Bas

相關問題