日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Java】7.5 正则表达式 7.6 Java 8 新增的日期、时间格式器

發布時間:2025/3/20 java 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java】7.5 正则表达式 7.6 Java 8 新增的日期、时间格式器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

Pattern類

Matcher類

Java 8 新增的日期、時間格式器


Pattern類

Pattern類的實例是將一個編譯好的正則表達式封裝起來。因此正則表達式字符串必須先被變異成Pattern對象,然后根據Pattern對象創建相應的Matcher對象。執行匹配所涉及的狀態保留在Matcher對象里,多個Matcher對象共用一個Pattern對象。Pattern類的實例是不變的,各個實例與對應的正則表達式綁定,無法修改。Pattern對象也是線程安全的,可被多個線程同時使用。

方法:

  • String complie():將正則表達式包裝起來
  • Matcher?matcher():將包裝好的正則表達式裝維Matcher對象,從而可以使用Matcher對象的方法
  • import java.util.regex.Matcher; import java.util.regex.Pattern;/*** @ClassName: FindGroupTest* @description: 測試Matcher類的find()方法和group()方法* find():返回目標字符串是否含有與Pattern匹配的子串* group():返回上一次與Pattern相匹配的子串* @author: FFIDEAL* @Date: 2020/3/10 17:02*/public class FindGroupTest {public static void main(String[] agrs){//使用字符串模擬從網絡上得到的網頁源碼String str = "我想要一本書:13545164852;聯系我:13855972562;出售:18855352656";//創建一個Pattern對象,并通過它建立一個Matcher對象//該正則表達式需要獲取13X或15X的Matcher matcher = Pattern.compile("((13\\d)|(18\\d))\\d{8}").matcher(str);while(matcher.find()){System.out.println(matcher.group());}} } //find()方法一次查找字符串中與Pattern匹配的子串,一旦找到對應的子串,下次調用find()方法時接下去往下查找

    Matcher類

    Matcher類為匹配字符序列的正則表達式模式提供了豐富的API。Matcher實例常常通過對Pattern對象調用matcher( )方法來創建的,它常常采用由該Pattern封裝的正則表達式。一個Matcher實例來自一個Pattern實例,Matcher對象的pattern( )返回的是向后引用(back reference),指向創建了Matcher的Pattern對象。Matcher對象可以重復使用,但是因其監控狀態屬性,為了開始新匹配操作它們必須處于已知狀態。Matcher不是線程安全的

    Matcher類提供的幾個常用的方法

  • boolean find():返回目標字符串中是否包含與Pattern匹配的子串
  • String group():返回上一次與Pattern匹配的子串
  • int start():返回上一次與Pattern匹配的子串在目標字符串中的開始位置
  • int end():返回上一次與Pattern匹配的子串在目標字符串中的結束位置再加1
  • boolean?lookingAt():返回目標字符串與前面部分與Pattern是否相同
  • boolean matches():返回整個字符串是否與Pattern是否相同
  • String?reset():將現有的Matcher對象應用于一個新的字符序列
  • import java.util.regex.Matcher; import java.util.regex.Pattern;/*** @ClassName: MatchesTest* @description:Pattern代表一個正則表達式模板* Matcher代表一個匹配工具類* @author: FFIDEAL* @Date: 2020/3/12 20:02*/public class MatchesTest {public static void main(String[] args){String[] mails = {"dshfjkdsahf@qq.com","dsjfjdshfshf@163.com","sdgfhdsgfh@ahpu.com","sjhhf@sdfd.org","sdsf@asd.xx"};//創建一個匹配的正則表達式標準String mailRegEx = "\\w{3,20}@\\w+\\.(org|com|cn|net|gov)";//compile()方法將正則表達式編譯成模式Pattern mailPattern = Pattern.compile(mailRegEx);Matcher matcher = null;for(String mail : mails){if(matcher == null){//將mail這個字符串也改為模式,賦值給matcher(匹配器)matcher = mailPattern.matcher(mail);}else{//mail的值新賦給matcher,替換掉原來的matcher,重置匹配器//如果你希望對新的字符序列進行匹配,//那么你可以將一個新的CharSequence傳遞給reset( ),//隨后匹配將針對目標進行。matcher.reset(mail);System.out.println(matcher);}String result = mail + (matcher.matches()? "是": "不是") + "一個有效郵件地址!";System.out.println(result);}} }

    ?

    import java.util.regex.Matcher; import java.util.regex.Pattern;/*** @ClassName: StartEndTest* @description:測試Matcher類的start()方法和end()方法* @author: FFIDEAL* @Date: 2020/3/10 17:14*/public class StartEndTest {public static void main(String[] args){String regStr = "Java is very easy !";System.out.println("目標字符串是:" + regStr);Matcher matcher = Pattern.compile("\\w+").matcher(regStr);while(matcher.find()){System.out.println(matcher.group() + "子串的起始位置:" + matcher.start()+ ",子串的的結束位置:" + matcher.end());}} } //以上程序使用find()、group()方法逐項取出目標字符串中與指定正則表達式匹配的子串 //之后使用start()、end()方法返回淄川在目標字符串中的位置 import java.io.File; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** @ClassName: FilePatetternTest* @description:* @author: FFIDEAL* @Date: 2020/3/16 22:18*/public class FilePatetternTest {public static void main(String[] args)throws Exception{Scanner file = new Scanner(new File("E:\\JavaCode\\CrazyJava\\Unit7\\5\\Test.txt"));Pattern pattern = Pattern.compile("String");Matcher matcher = null;while(file.hasNextLine()){if(matcher==null){matcher = pattern.matcher(file.nextLine());}else{matcher.reset(file.nextLine());}System.out.println(matcher.replaceAll("☆"));}} }

    ?

    Java 8 新增的日期、時間格式器

    import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.format.FormatStyle;/*** @ClassName: NewFormatterTest* @description:* @author: FFIDEAL* @Date: 2020/3/12 21:41*/public class NewFormatterTest {public static void main(String[] args){DateTimeFormatter[] formatters = new DateTimeFormatter[]{//直接使用常量創建DateTimeFormat格式器DateTimeFormatter.ISO_LOCAL_DATE,DateTimeFormatter.ISO_LOCAL_DATE_TIME,DateTimeFormatter.ISO_LOCAL_TIME,//使用本地化的不同風格來創建DateTimeFormatter格式器DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL,FormatStyle.MEDIUM),DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG),//根據模式字符串來創建DateTimeFormatter格式器DateTimeFormatter.ofPattern("Gyyyy MMM dd HH:MM:SS")};LocalDateTime dateTime = LocalDateTime.now();for(int i = 0; i < formatters.length; i++){//下面兩行代碼作用相同System.out.println(dateTime.format(formatters[i]));System.out.println(formatters[i].format(dateTime));}} } import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;/*** @ClassName: SimpleDateFormatTest* @description: 格式化日期* @author: FFIDEAL* @Date: 2020/3/12 21:26*/public class SimpleDateFormatTest {public static void main(String[] args) throws ParseException {Date date = new Date();//創建一個SimpleDateFormat對象SimpleDateFormat simpleDateFormat = new SimpleDateFormat("GYYYY年中的第D天");//將d格式化輸出:公園String dateStr = simpleDateFormat.format(date);System.out.println(dateStr);//一個非常特殊的日期字符串String str = "20###三月##3";SimpleDateFormat sdf2 = new SimpleDateFormat("Y###MMM##d");System.out.println(sdf2.parse(str));} }

    ?

    ?

    總結

    以上是生活随笔為你收集整理的【Java】7.5 正则表达式 7.6 Java 8 新增的日期、时间格式器的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。