JavaSE基础知识分享(十五)

cnblogs 2024-08-26 08:09:23 阅读 86

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

写在前面

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

枚举

概述

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

JDK 1.5 之前的写法

    <li>

    创建枚举类的属性(成员变量)

    必须作为私有常量存在。

  1. 将构造方法私有化

    确保类的对象是有限个的,防止外部创建新的实例。

  2. 提供公共的静态 <code>final 方法

    让外界获取枚举类中的多个对象。

    li>
  3. 提供公共的获取属性的方法

  4. 重写 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 之后的写法

  1. 定义枚举对象

    在枚举类的开头定义所有的枚举常量。

  2. 创建枚举类的属性(成员变量)

    必须作为私有常量存在。

  3. 将构造方法私有化

    确保类的对象是有限个的。

  4. 提供公共的获取属性的方法

  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]:匹配 abc
    • [^abc]:匹配除了 abc 的任意字符。
    • [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());

}

}

}


上一篇: 题解:SP22382 ETFD

下一篇: Qt数据库驱动编译(MySQL)

本文标签

Java   


声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。