问题描述
假设某单位内部电话号码由三部分组成(共六位),分别是:分机号(1位)+前缀(2位)+后缀(3位)。其中,分机号为空白或一位数字;前缀为非‘0’开头的二位数字;后缀为非全0的3位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码,给出提示(哪部分出错)。
解决方案
解决方案二:
publicbooleancheck(Stringstr){Patternpattern=Pattern.compile("[1-9]\d(|\d)[1-9][1-9][1-9]");returnpattern.matcher(str).matches();}
解决方案三:
顶起.楼上的
解决方案四:
用正则表达式
解决方案五:
publicclassPhoneRegex{publicstaticvoidmain(String[]args){StringstrPhone="110100";System.out.println(isPhoneValid(strPhone));}publicstaticbooleanisPhoneValid(Stringphone){Patternpattern=Pattern.compile("[1-9]{2}+[0-9]{4}");Patternpattern2=Pattern.compile("[0-9]{3}+[0]{3}");returnpattern.matcher(phone).matches()&&!pattern2.matcher(phone).matches()?true:false;}}
一个写不出来,期待高手,O(∩_∩)O~
解决方案六:
顶!!!
解决方案七:
引用楼主naclmingjava1的回复:
假设某单位内部电话号码由三部分组成(共六位),分别是:分机号(1位)+前缀(2位)+后缀(3位)。其中,分机号为空白或一位数字;前缀为非‘0’开头的二位数字;后缀为非全0的3位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码,给出提示(哪部分出错)。
哦,看错了,他的结构是1+2+3我以为是前缀在前面中间是分机号后面是后缀,晕,楼主你这描述也太歧义了吧publicbooleancheck(Stringstr){Patternpattern=Pattern.compile("(|\d)[1-9]\d[1-9]{3}");returnpattern.matcher(str).matches();}
解决方案八:
看了,我不会。。。爱莫能助