写在前面
本日继续讲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());
- }
- }
- }
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |