A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hanrongle 中级黑马   /  2013-8-14 10:59  /  1169 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. import java.util.*;

  2. class TelNumber
  3. {
  4. public static void main(String[] args)
  5. {

  6. Scanner in = new Scanner(System.in);
  7. String tel = in.next();
  8. CheckTel(tel);
  9. }

  10. public static void CheckTel(String tel)
  11. {
  12. String reg = "1[358]//d{9}\r\n";

  13. if(!(tel.matches(reg)))
  14. {
  15. System.out.println("您输入的号码有误!");
  16. }
  17. }
  18. }
复制代码
这个程序是从键盘输入电话号码,通过正则表达式判断是否合法。但是有问题,如何修改呢?

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

2 个回复

倒序浏览
本帖最后由 薛鹏鹏 于 2013-8-14 11:20 编辑

正则写错了
String reg = "1[358]\\d{9}";
  1. import java.util.*;

  2. class Test2
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.        
  7.                 Scanner in = new Scanner(System.in);
  8.                
  9.                 System.out.println("请输入电话号码");
  10.                 String tel = in.next();
  11.                 CheckTel(tel);
  12.         }

  13.         public static void CheckTel(String tel)
  14.         {
  15.                 String reg = "1[358]\\d{9}";
  16.        
  17.                 if(tel.matches(reg))
  18.                         System.out.println("输入正确");
  19.                
  20.                 else
  21.                         System.out.println("您输入的号码有误!");
  22.         }       
  23.        
  24. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

回复 使用道具 举报
你正则表达式也错了,上一楼也的正则表达式是正确的,String reg = "1[358]\\d{9}";
你的后面不需要加\r\n,因为你的电话号码中不可能有\r\n,你的意思我感觉是考虑到换行吧,
在你用next();输入的时候,输入完毕后,会默认的读取你输入的,不会考虑你点击的回车!
希望对i有帮助!

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马