天天看點

軟體基本功:代碼創新要不得:for循環判斷一個字元是不是數字字元

  負責這個功能的同僚年前已經離職了。吾當初安裝這個工作,自己也忙,沒空看代碼。今天看到一段代碼:

protected static char [] numberChars = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
 
    protected boolean isNumberChar(char c) {
        for (int i=0; i<10; i++) {
            if (c == numberChars[i]) {
                return true;
            }
        }
 
        return false;
    }      

  此類代碼是吾第二次看到。假如,他是你的上級,或者是公司技術骨幹,你看到這樣的代碼,心裡是什麼感受?一種不以為然甚至嗤之以鼻的感受是不是浮現心頭?同志們啊,不要天天吹噓設計。這樣的代碼被别人看到,汝說汝會設計,有人信嗎?汝說汝技術好,有人信嗎?

 另外,這裡的10也不對。數組長度變化了怎麼辦?

 據說JAVA提供了判斷是不是數字字元的方法,這個是知識點,不知道沒什麼奇怪的(比如吾就不知道)。那麼代碼應該怎樣寫?

protected boolean isNumberChar(char c)
    {
        return '0' <= c && c <= '9';
    }      

  這裡的0/9位置也是很講究的。有興趣的朋友可以想想這樣寫的好處。