天天看点

软件基本功:代码创新要不得: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位置也是很讲究的。有兴趣的朋友可以想想这样写的好处。