字符串缓冲区和正则表达式

字符串缓冲区(StringBuffer 和 StringBuilder)

什么是字符串缓冲区?

缓冲区(Buffer):临时存储数据的一块区域。

字符串缓冲区:一种可变字符串序列,用于处理频繁修改的字符串。

Java中有两种代表:StringBufferStringBuilder

String、StringBuffer、StringBuilder 对比表:

特性 String(不可变) StringBuffer(可变,线程安全) StringBuilder(可变,非线程安全)
可变性 不可变字符串 可变字符串 可变字符串
线程安全
性能 最慢 中等 最快(适合单线程)
用途 字符串常量 多线程中频繁操作字符串 单线程中频繁操作字符串

StringBuffer常见操作:

java 复制代码
StringBuffer sb = new StringBuffer("Hello");

// 追加内容
sb.append(" World"); // -> Hello World

// 插入内容
sb.insert(5, ",");   // -> Hello, World

// 删除内容
sb.delete(5, 6);     // -> Hello World

// 替换内容
sb.replace(6, 11, "Java"); // -> Hello Java

// 反转内容
sb.reverse(); // -> avaJ olleH

// 转为 String
String str = sb.toString();

正则表达式(Regular Expression)

正则表达式的作用

它是一种匹配字符串的工具,用于查找、校验或替换字符串中的内容。

它常见的符号是

符号 含义 示例
. 匹配任意一个字符 a.c 匹配 abc, a3c
\d 任意一位数字([0-9]) \d{3} 匹配三位数字
\w 任意字母数字下划线 \w+ 匹配一个或多个单词字符
\s 空白字符(空格、tab)
^ 匹配行的开头 ^Hello 匹配以 Hello 开头
$ 匹配行的结尾 world$ 匹配以 world 结尾
[] 匹配指定范围内任意一个字符 [abc] 匹配 a 或 b 或 c
` `
* 零个或多个 a* 匹配0个或多个a
+ 一个或多个 a+ 匹配1个或多个a
? 零个或一个 a? 匹配0或1个a
{n} 恰好n个 \d{4} 匹配4位数字

常见使用

java 复制代码
import java.util.regex.*;

public class RegexExample {
    public static void main(String[] args) {
        String str = "abc123xyz456";

        // 查找所有数字
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(str);

        while (matcher.find()) {
            System.out.println("匹配到数字:" + matcher.group());
        }

        // 验证手机号
        String phone = "13812345678";
        boolean isPhone = phone.matches("1[3-9]\\d{9}");
        System.out.println("手机号格式正确?" + isPhone);
    }
}

总结

主题 关键词 使用场景
字符串缓冲区 StringBuffer, StringBuilder 字符串拼接、频繁修改的字符串
正则表达式 Pattern, Matcher, \\d+ 表单校验、字符串搜索、数据提取
相关推荐
fouryears_234171 小时前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~1 小时前
C#---StopWatch类
开发语言·c#
桦说编程3 小时前
Java 中如何创建不可变类型
java·后端·函数式编程
lifallen3 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研3 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
没有bug.的程序员3 小时前
JVM 总览与运行原理:深入Java虚拟机的核心引擎
java·jvm·python·虚拟机
甄超锋4 小时前
Java ArrayList的介绍及用法
java·windows·spring boot·python·spring·spring cloud·tomcat
cui__OaO4 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
阿华的代码王国4 小时前
【Android】RecyclerView复用CheckBox的异常状态
android·xml·java·前端·后端
Zyy~4 小时前
《设计模式》装饰模式
java·设计模式