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

字符串缓冲区(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+ 表单校验、字符串搜索、数据提取
相关推荐
每次的天空5 分钟前
Android -Glide实战技术总结
java·spring boot·spring
xb11328 分钟前
C#——方法的定义、调用与调试
开发语言·c#
小二·17 分钟前
【IEDA】已解决:IDEA中jdk的版本切换
java·ide·intellij-idea
专注代码七年22 分钟前
IDEA大幅度提升编译速度配置
java·ide·intellij-idea
max50060025 分钟前
嵌入用户idea到大模型并针对Verilog语言生成任务的微调实验报告
java·ide·intellij-idea
froginwe1128 分钟前
MVC HTML 帮助器
开发语言
王嘉俊9251 小时前
ThinkPHP 入门:快速构建 PHP Web 应用的强大框架
开发语言·前端·后端·php·框架·thinkphp
syty20201 小时前
AST语法树应用于sql检查
java·开发语言·ast
倔强菜鸟1 小时前
2025.8.10-学习C++(一)
开发语言·c++·学习
ZXF_H1 小时前
C/C++预定义宏与调试日志输出模板
开发语言·c++·日志·调试·预定义宏