Java 日期时间和正则表达式

本文详细介绍了Java中获取当前日期时间的方法,如何使用SimpleDateFormat进行日期格式化,以及如何利用sleep实现线程休眠。此外,还涵盖了正则表达式的匹配、替换和切割应用,展示如何在Java中高效处理字符串。
摘要由CSDN通过智能技术生成

Java 日期时间

1、获取当前日期时间

import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());
   }
}

2、使用 SimpleDateFormat 格式化日期

import  java.util.*;
import java.text.*;
 
public class DateDemo {
   public static void main(String args[]) {
 
      Date dNow = new Date( );
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
 
      System.out.println("当前时间为: " + ft.format(dNow));
   }
}

3、Java 休眠(sleep)

sleep()使当前线程进入停滞状态(阻塞当前线程),让出CPU的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会。

import java.util.*;
  
public class SleepDemo {
   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(1000*3);   // 休眠3秒
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

 正则表达式

正则表达式,⼜称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的⼀个概念。正则表达式通常被⽤来检索、替换那些符合某个模式(规则)的⽂本。在众多语⾔中都可以⽀持 正则表达式,如Perl、PHP、Java、Python、Ruby等。当然在Java中也可以通过处理字符串的⽅式达到检索,替换 ⽂本字符串的⽬的,但是有了正则表达式写代码更加简洁,通常两三⾏代码就可以达到⽬的,当然这也是建⽴在熟 悉正则表达式的基础之上的。主要是对字符串的一个处理

正则表达式的规则

1. 任意⼀个字符表示匹配任意对应的字符,如a匹配a,7匹配7,-匹配-。
2. []代表匹配中括号中其中任⼀个字符,如[abc]匹配a或b或c。
3. -在中括号⾥⾯和外⾯代表含义不同,如在外时,就匹配-,如果在中括号内[a-z]表示匹配26个⼩写字⺟中的任⼀
个;[a-zA-Z]匹配⼤⼩写共52个字⺟中任⼀个;[0-9]匹配⼗个数字中任⼀个。
4. ^在中括号⾥⾯和外⾯含义不同,如在外时,就表示开头,如^7[0-9]表示匹配开头是7的,且第⼆位是任⼀数字
的字符串;如果在中括号⾥⾯,表示除了这个字符之外的任意字符(包括数字,特殊字符),如[^abc]表示匹配出去
abc之外的其他任⼀字符。
5. .表示匹配任意的字符。
6. \d表示数字。
7. \D表示⾮数字。
8. \s表示由空字符组成,[ \t\n\r\x\f]。
9. \S表示由⾮空字符组成,[^\s]。
10. \w表示字⺟、数字、下划线,[a-zA-Z0-9_]。
11. \W表示不是由字⺟、数字、下划线组成。
12. ?: 表示出现0次或1次。
13. +表示出现1次或多次。
14. *表示出现0次、1次或多次。
15. {n}表示出现n次。
16. {n,m}表示出现n~m次。
17. {n,}表示出现n次或n次以上。
18. XY表示X后⾯跟着Y,这⾥X和Y分别是正则表达式的⼀部分。
19. X|Y表示X或Y,⽐如"food|f"匹配的是foo(d或f),⽽"(food)|f"匹配的是food或f。
20. (X)⼦表达式,将X看做是⼀个整体。

1、匹配

import java.util.regex.Matcher;
import java.util.regex.Pattern;
​
public class regex_demo {
​
    public static void main(String[] args) {
        //实现方法1,匹配一个数字
​
        //需要匹配的字符
        String s="8";
        //正则表达式
        String regex="[0-9]";
        //返回匹配的结果,匹配成功就返回true,失败就返回false,此次匹配返回true
        boolean b = s.matches(regex);
        System.out.println(b);
        System.out.println("--------");
​
​
        //实现⽅式2, 匹配3个到5个字⺟,⼤⼩写不限,包括3和5个
​
        //要匹配的字符
        String s2 = "hello";
​
        //正则表达式
        String regex2="[a-zA-Z]{3,5}";
​
        boolean b1 = s2.matches(regex2);
        System.out.println(b1);
        System.out.println("--------");
​
        /**
         * 实现⽅式3(此种实现⽅式最快)
         * 匹配11位的电话号码,匹配规则:
         * 第⼀个数字是1,第⼆个数字是2,3,7,8中任⼀个,后⾯9位数字中不包含4
         */
        //要匹配的字符
        String s3 = "13656231253";
​
        //正则表达式
        String regex3="1[2378][0-35-9]{9}";
​
        //将给定的正则表达式编译为模式。
        // 如果匹配需求较多,且需⽤同相同的regex去匹配,就可将这句写到静态模块⾥⾯,⽤的时候直接使⽤实例p
        Pattern p = Pattern.compile(regex3);
​
        //创建⼀个匹配器,匹配给定的输⼊与此模式
        Matcher m = p.matcher(s3);
​
        //尝试将整个区域与模式进⾏匹配。
        boolean f = m.matches();
        //输出结果
        System.out.println(f);
​
    }
}
​

2、替换

import java.util.regex.Matcher;
import java.util.regex.Pattern;
​
public class regex_demo {
​
    public static void main(String[] args) {
        /**
         * 替换
         * 用正则表达式
         * 将字符串中英⽂字⺟替换为&符号,输出12&6&985&65
         * 将字符串中单个数字或者连续的数字替换为空格,输出  aBCcv
         */
​
        //要匹配的字符
        String str = "12a6B985Ccv65";
        //正则表达式
        String r1="[a-zA-z]+";
        //用replaceAll方法来完成替换
        System.out.println(str.replaceAll(r1,"&"));
​
        String r2="\\d+";
        System.out.println(str.replaceAll(r2, ""));
    }
}

3、切割

import java.util.regex.Matcher;
import java.util.regex.Pattern;
​
public class regex_demo {
​
    public static void main(String[] args) {
         /**
         *  切割,根据⼤写字⺟切割字符串
         *  输出:one tow three four five
         */
        //需要的字符串
        String s4="oneTtwoTthreeDfourJfive";
        //正则表达式
        String v="[A-Z]";
        //放入数组中
        String[] split = s4.split(v);
        //遍历输出
        for (String ss: split) {
            System.out.println(ss);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值