Java简单基础复习(七)正则表达式,Date

正则表达式

  1. 正则表达式是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。
  2. 正则表达式的表达类:
    • 字符类:
      • [abc] a、b 或 c(简单类)
      • [ ^abc ] 任何字符,除了 a、b 或 c(表否定)
      • [a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内(表范围)
      • [0-9] 0到9的字符都包括
        代码:
		String regex = "[abc]";//[]代表单个字符
		System.out.println("a".matches(regex));
		System.out.println("d".matches(regex));
		
		String regex = "[^dbc]";//[^abc]代表除了abc的单字符
		System.out.println("a".matches(regex));
		System.out.println("d".matches(regex));
		
		String regex = "[a-zA-Z1-9]";//a到z或A到Z或1到9,两头的字母包括在内(范围)
		System.out.println("0".matches(regex));
		System.out.println("a".matches(regex));
		System.out.println("A".matches(regex));
		System.out.println("1".matches(regex));
  • 预定义字符类
    • . 任何字符。
    • \d代表数字:[0-9]
    • \D代表非数字
    • \s空白字符:[\t\n\x0B\f\r]
    • \S非空字符
    • \w单词字符[a-zA-Z_0-9]
    • \W非单词字符
		//.代表任何字符
		String regex = ".";
		System.out.println("a".matches(regex));
		System.out.println("ab".matches(regex));
		//演示
		String regex = "\\d";//\代表转义字符,如果想要表示\d就需要\\d
		System.out.println("0".matches(regex));
  • 数量词
    • X? X,一次或一次也没有
    • X* X,零次或多次
    • X+ X,一次或多次
    • X{n} X,恰好 n 次
    • X{n,} X,至少 n 次
    • X{n,m} X,至少 n 次,但是不超过 m 次
		String regex  = "[abc]?";
		System.out.println("a".matches(regex));
		System.out.println("".matches(regex));
		
		String regex = "[abc]*";
		System.out.println("".matches(regex));
		System.out.println("abc".matches(regex));
		System.out.println("a".matches(regex));
  1. 正则表达式的替换功能
    • String类的功能:public String replaceAll(String regex,String replacement)
		String s = "woai22bread";
		String regex = "\\d";//\\d代面的是任意数字
		String s2 = s.replaceAll(regex, "");
		System.out.println(s2);
  1. 正则表达式的分组功能
    • 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B( C ))) 中,存在四个这样的组:
		String regex  = "(.)\\1(.)\\2";  //\\1代表第一组又出现一次,\\2代表第二组又出现一次
		System.out.println("快快乐乐".matches(regex));
		String regex = "(..)\\1";
		System.out.println("快乐快乐".matches(regex));

		//案例切割叠词字符串"sdqqfgkkkhjppppkl"
		String s = "sdqqfgkkkhjppppkl";
		String regex = "(.)\\1+";
		String[] arr = s.split(regex);
		for(int i=0;i<arr.length;i++)
		{
			System.out.println(arr[i]);
		}
  1. Pattern和Matcher的运用
		Pattern p = Pattern.compile("a*b");//获取到正则表达式
		Matcher m = p.matcher("aaaaab");//获取匹配器
		boolean b = m.matches();//看是否能匹配,匹配就返回true
		//案例:获取手机号
		String s = "我的手机号码:18319857093,曾经用过13421343586,还用过18812345678";
		String regex = "1[3578]\\d{9}";//手机号码的正则表达式
		Pattern p = Pattern.compile(regex);//获取到正则表达式
		Matcher m = p.matcher(s);//获取匹配器
		while(m.find()) {
			System.out.println(m.group());
		}

Date

  • Date类的概述
    • 类 Date 表示特定的瞬间,精确到毫秒。
  • 构造方法
    • public Date()
    • public Date(long date)
  • 成员方法
    • public long getTime()
    • public void setTime(long time)
		Date d1 = new Date();
		System.out.println(d1); 
		
		Date d2 = new Date(0);//如果构造方法中的参数是0代表1970年1月1日
		System.out.println(d2);
		
		Date d3 = new Date();
		System.out.println(d3.getTime());
  • SimpleDateFormat类实现日期和字符串的相互转换
    • DateFormat类的概述
      • DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。是抽象类,所以使用其子类SimpleDateFormat
    • SimpleDateFormat构造方法
      • public SimpleDateFormat()
      • public SimpleDateFormat(String pattern)
    • 成员方法
      • public final String format(Date date)
      • public Date parse(String source)
		//SimpleDateFormal类实现日期和字符串的相互转换
		//DateFormat是抽象类是不允许实例化
		DateFormat d = DateFormat.getDateInstance();//相当于父类引用
		Date d = new Date();//获取当前时间对象
		SimpleDateFormat sdf = new SimpleDateFormat("YYYY年MM月dd日 HH:mm:ss");//创建格式化类对象
		System.out.println(sdf.format(d));//空参格式:20-2-3 上午10:36
		String str = "2000年08月08日 08:08:08";
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		Date d = sdf.parse(str);//将时间字符串转换成日期对象
		System.out.println(d);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值