黑马程序员技术交流社区

标题: 正则表达式问题 [打印本页]

作者: hanrongle    时间: 2013-8-14 10:59
标题: 正则表达式问题
  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. }
复制代码
这个程序是从键盘输入电话号码,通过正则表达式判断是否合法。但是有问题,如何修改呢?
作者: 薛鹏鹏    时间: 2013-8-14 11:18
本帖最后由 薛鹏鹏 于 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. }
复制代码

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




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