JavaSE基础知识分享(十五)

打印 上一主题 下一主题

主题 918|帖子 918|积分 2754

写在前面

本日继续讲Java中的枚举和正则表达式的的知识!这部分说完,JavaSE部分的知识就结束了!
枚举

概述

枚举类用于形貌有限个对象的类。自 JDK 1.5 起引入了对枚举类型的原生支持,简化了枚举的定义和使用。下面是 JDK 1.5 之前和之后的枚举类定义方式的比较。
JDK 1.5 之前的写法


  • 创建枚举类的属性(成员变量)
    必须作为私有常量存在。
  • 将构造方法私有化
    确保类的对象是有限个的,防止外部创建新的实例。
  • 提供公共的静态 final 方法
    让外界获取枚举类中的多个对象。
  • 提供公共的获取属性的方法
  • 重写 toString() 方法
    提供一个有意义的字符串表示。
示例代码:
  1. public class Season {
  2.     // 枚举对象
  3.     private static final Season SPRING = new Season("春天", "春暖花开");
  4.     private static final Season SUMMER = new Season("夏天", "烈日炎炎");
  5.     private static final Season AUTUMN = new Season("秋天", "秋高气爽");
  6.     private static final Season WINTER = new Season("冬天", "寒风刺骨");
  7.     // 枚举类的属性
  8.     private final String name;
  9.     private final String description;
  10.     // 私有构造方法
  11.     private Season(String name, String description) {
  12.         this.name = name;
  13.         this.description = description;
  14.     }
  15.     // 获取属性的方法
  16.     public String getName() {
  17.         return name;
  18.     }
  19.     public String getDescription() {
  20.         return description;
  21.     }
  22.     // 重写 toString() 方法
  23.     @Override
  24.     public String toString() {
  25.         return name + ": " + description;
  26.     }
  27.     // 提供公共的静态方法获取枚举对象
  28.     public static Season[] values() {
  29.         return new Season[] { SPRING, SUMMER, AUTUMN, WINTER };
  30.     }
  31. }
复制代码
JDK 1.5 之后的写法


  • 定义枚举对象
    在枚举类的开头定义全部的枚举常量。
  • 创建枚举类的属性(成员变量)
    必须作为私有常量存在。
  • 将构造方法私有化
    确保类的对象是有限个的。
  • 提供公共的获取属性的方法
  • 重写 toString() 方法
    提供有意义的字符串表示。
示例代码:
  1. public enum Season {
  2.     SPRING("春天", "春暖花开"),
  3.     SUMMER("夏天", "烈日炎炎"),
  4.     AUTUMN("秋天", "秋高气爽"),
  5.     WINTER("冬天", "寒风刺骨");
  6.     // 枚举类的属性
  7.     private final String name;
  8.     private final String description;
  9.     // 构造方法私有化
  10.     private Season(String name, String description) {
  11.         this.name = name;
  12.         this.description = description;
  13.     }
  14.     // 获取属性的方法
  15.     public String getName() {
  16.         return name;
  17.     }
  18.     public String getDescription() {
  19.         return description;
  20.     }
  21.     // 重写 toString() 方法
  22.     @Override
  23.     public String toString() {
  24.         return name + ": " + description;
  25.     }
  26. }
复制代码
正则表达式

正则表达式是用于匹配字符串的一种工具。它可以用于验证输入的格式、提取字符串中的信息或替换字符串的内容。
正则表达式常用语法:

  • 字符类

    • [abc]:匹配 a、b 或 c。
    • [^abc]:匹配除了 a、b 和 c 的任意字符。
    • [a-z]:匹配小写字母。
    • [A-Z]:匹配大写字母。
    • [0-9]:匹配数字。

  • 预定义字符类

    • \d:匹配数字(等同于 [0-9])。
    • \D:匹配非数字字符。
    • \w:匹配字母、数字或下划线(等同于 [a-zA-Z0-9_])。
    • \W:匹配非字母、数字和下划线字符。
    • \s:匹配空白字符(包括空格、制表符、换行符等)。
    • \S:匹配非空白字符。

  • 量词

    • *:匹配前面的字符零次或多次。
    • +:匹配前面的字符一次或多次。
    • ?:匹配前面的字符零次或一次。
    • {n}:匹配前面的字符恰好 n 次。
    • {n,}:匹配前面的字符至少 n 次。
    • {n,m}:匹配前面的字符至少 n 次,但不凌驾 m 次。

  • 边界匹配

    • ^:匹配字符串的开头。
    • $:匹配字符串的结尾。

  • 分组和捕获

    • ():将匹配的部分分组。
    • |:表示逻辑“或”操作符。

  • 转义字符

    • \:用于转义特别字符,如 \.、\*、\? 等。

示例:
  1. // Java 中使用正则表达式进行匹配
  2. import java.util.regex.Pattern;
  3. import java.util.regex.Matcher;
  4. public class RegexExample {
  5.     public static void main(String[] args) {
  6.         String regex = "\\d+"; // 匹配一个或多个数字
  7.         String input = "There are 123 apples and 456 oranges.";
  8.         Pattern pattern = Pattern.compile(regex);
  9.         Matcher matcher = pattern.matcher(input);
  10.         while (matcher.find()) {
  11.             System.out.println("Found number: " + matcher.group());
  12.         }
  13.     }
  14. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

莫张周刘王

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表