黑马程序员技术交流社区

标题: QQ号码校验中的,返回值出错 [打印本页]

作者: MoonsenHung    时间: 2015-8-22 11:53
标题: QQ号码校验中的,返回值出错
public class RegaxDemo {
        public static void main(String[] args) {
                // 封装键盘录入
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一行QQ号:");
                String s = sc.nextLine();

                boolean flag = checkQq(s);
                System.out.println(flag);

        }

        private static boolean checkQq(String s) {
                boolean flag = true;

                if (s.length() >= 5 && s.length() <= 15) {
                        if (!s.startsWith("0")) {
                                char[] ch = s.toCharArray();
                                for (char chs : ch) {
                                        // 下面一步把!去掉,然后flag=true,为何测试的时候输入带 字母的它会返回true呢?
                                        if (!(chs >= '0' && chs <= '9')) {
                                                flag = false;
                                                break;
                                        }
                                }
                        } else {
                                flag = false;
                        }
                } else {
                        flag = false;
                }
                return flag;
        }

}


以上内容中,在最后一个if中,如果把!去掉,然后返回值改为true,为什么输入带有字母的号码检测的时候会返回的是true呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2