JavaSE基础知识分享(十五)
1.JavaSE基础知识分享(一)2.JavaSE基础编程十题(数据类型、运算符、选择语句、循环语句部分)3.JavaSE基础知识分享(二)4.JavaSE基础知识分享(二)相关练习题5.JavaSE基础编程十题(数组和方法部分)6.JavaSE基础知识分享(三)7.JavaSE基础知识分享(三)相关练习题8.JavaSE基础知识分享(四)9.JavaSE基础知识分享(五)10.JavaSE基础知识分享(六)11.JavaSE基础知识分享(七)12.JavaSE基础知识分享(八)13.JavaSE基础知识分享(九)14.JavaSE基础知识分享(十)15.JavaSE基础知识分享(十一)16.JavaSE基础知识分享(十二)17.JavaSE基础知识分享(十三)18.JavaSE基础知识分享(十四)
19.JavaSE基础知识分享(十五)
写在前面
今天继续讲Java中的枚举和正则表达式的的知识!这部分说完,JavaSE部分的知识就结束了!
枚举
概述
枚举类用于描述有限个对象的类。自 JDK 1.5 起引入了对枚举类型的原生支持,简化了枚举的定义和使用。下面是 JDK 1.5 之前和之后的枚举类定义方式的比较。
JDK 1.5 之前的写法
-
创建枚举类的属性(成员变量)
必须作为私有常量存在。 -
将构造方法私有化
确保类的对象是有限个的,防止外部创建新的实例。 -
提供公共的静态
final
方法
让外界获取枚举类中的多个对象。 -
提供公共的获取属性的方法
-
重写
toString()
方法
提供一个有意义的字符串表示。
示例代码:
public class Season { // 枚举对象 private static final Season SPRING = new Season("春天", "春暖花开"); private static final Season SUMMER = new Season("夏天", "烈日炎炎"); private static final Season AUTUMN = new Season("秋天", "秋高气爽"); private static final Season WINTER = new Season("冬天", "寒风刺骨"); // 枚举类的属性 private final String name; private final String description; // 私有构造方法 private Season(String name, String description) { this.name = name; this.description = description; } // 获取属性的方法 public String getName() { return name; } public String getDescription() { return description; } // 重写 toString() 方法 @Override public String toString() { return name + ": " + description; } // 提供公共的静态方法获取枚举对象 public static Season[] values() { return new Season[] { SPRING, SUMMER, AUTUMN, WINTER }; } }
JDK 1.5 之后的写法
-
定义枚举对象
在枚举类的开头定义所有的枚举常量。 -
创建枚举类的属性(成员变量)
必须作为私有常量存在。 -
将构造方法私有化
确保类的对象是有限个的。 -
提供公共的获取属性的方法
-
重写
toString()
方法
提供有意义的字符串表示。
示例代码:
public enum Season { SPRING("春天", "春暖花开"), SUMMER("夏天", "烈日炎炎"), AUTUMN("秋天", "秋高气爽"), WINTER("冬天", "寒风刺骨"); // 枚举类的属性 private final String name; private final String description; // 构造方法私有化 private Season(String name, String description) { this.name = name; this.description = description; } // 获取属性的方法 public String getName() { return name; } public String getDescription() { return description; } // 重写 toString() 方法 @Override public String toString() { return name + ": " + description; } }
正则表达式
正则表达式是用于匹配字符串的一种工具。它可以用于验证输入的格式、提取字符串中的信息或替换字符串的内容。
正则表达式常用语法:
-
字符类
[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 次。
-
边界匹配
^
:匹配字符串的开头。$
:匹配字符串的结尾。
-
分组和捕获
()
:将匹配的部分分组。|
:表示逻辑“或”操作符。
-
转义字符
\
:用于转义特殊字符,如\.
、\*
、\?
等。
示例:
// Java 中使用正则表达式进行匹配 import java.util.regex.Pattern; import java.util.regex.Matcher; public class RegexExample { public static void main(String[] args) { String regex = "\\d+"; // 匹配一个或多个数字 String input = "There are 123 apples and 456 oranges."; Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(input); while (matcher.find()) { System.out.println("Found number: " + matcher.group()); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)