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;
}
}正则表达式
正则表达式是用于匹配字符串的一种工具。它可以用于验证输入的格式、提取字符串中的信息或替换字符串的内容。
正则表达式常用语法:
[*]字符类
[*]:匹配 a、b 或 c。
[*][^abc]:匹配除了 a、b 和 c 的任意字符。
[*]:匹配小写字母。
[*]:匹配大写字母。
[*]:匹配数字。
[*]预定义字符类
[*]\d:匹配数字(等同于 )。
[*]\D:匹配非数字字符。
[*]\w:匹配字母、数字或下划线(等同于 )。
[*]\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企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]