2013-02-05 19 views
2

我正在編寫計劃(Dr.Rocket)中的程序來驗證加拿大郵政編碼。用戶輸入一個郵政編碼並得到一個無論是否有效的回覆。我得到了布爾邏輯,但我很難理解如何正確地告訴它什麼是正確的格式。計劃中的郵政編碼驗證(Dr.Retet)

前。 (有效的郵政編碼?N2L 3G1)=>真

我該怎麼做?

感謝

+1

您是在問一個特定領域的問題(例如,什麼是有效的加拿大郵政編碼的結構),還是您在問如何編程?這個問題很難說清楚。維基百科討論了加拿大郵政編碼的結構:http://en.wikipedia.org/wiki/Postal_codes_in_Canada#Components_of_a_postal_code – dyoo

回答

4

如果你想知道一個字符串有一個有效的郵政編碼格式,你可以使用正則表達式。加拿大郵政編碼包括六個字符,以字母開頭的字母和數字交替,在第三和第四個字符之間嵌入空格。一個合適的正則表達式是^[A-Z][0-9][A-Z] [0-9][A-Z][0-9]$

如果您想知道郵政編碼列表中是否包含有效格式的字符串,最簡單的解決方案是布隆過濾器。我提供了一個用Scheme編寫的布隆過濾器,其格式爲my blog

+0

非常感謝!這真的有幫助。我很感激! –

0

我不知道怎麼郵政加拿大代碼工作,但我覺得你問的是,你可能只是有有效代碼一個長長的清單和需要告訴程序,他們都OK,並沒有其他的代碼是。

使用可變的哈希表將是理想的你的目的:http://docs.racket-lang.org/guide/hash-tables.html