当前位置: 首页 > backend >正文

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

字符串缓冲区(StringBuffer 和 StringBuilder)

什么是字符串缓冲区?

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

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

Java中有两种代表:StringBufferStringBuilder

String、StringBuffer、StringBuilder 对比表: 

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

StringBuffer常见操作:

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位数字

常见使用

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+表单校验、字符串搜索、数据提取
http://www.xdnf.cn/news/16333.html

相关文章:

  • Mingw 与MSYS2 与Cygwin区别
  • Linux如何执行系统调用及高效执行系统调用:深入浅出的解析
  • 基于深度学习的胸部 X 光图像肺炎分类系统(七)
  • 凝思系统6.0.80安装chorme,亲测可用
  • 如何创建或查看具有 repo 权限的 GitHub 个人访问令牌(PAT)
  • mount: /mnt/sd: wrong fs type, bad option, bad superblock on /dev/mmcblk1
  • FitCoach AI:基于React+CloudBase的智能健身教练应用开发全解析
  • 缓存一致性:从单核到异构多核的演进之路
  • Android Jetpack 组件库 ->WorkManager
  • Linux系统架构核心全景详解
  • Unity 实现帧率(FPS)显示功能
  • 11Linux文件压缩与链接实战技巧
  • 深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别
  • Python 数据分析(二):Matplotlib 绘图
  • 小白成长之路-部署Zabbix7(二)
  • 【GoLang#3】:数据结构(切片 | map 映射)
  • Linux726 raid0,raid1,raid5;raid 创建、保存、停止、删除
  • KubeKey安装KubeSphere、部署应用实践问题总结
  • 零基础学习性能测试第四章:从0到1学会编写性能测试报告
  • 【Spring AI】SiliconFlow-硅基流动
  • C# 位运算及应用
  • GStreamer中Element(元素)
  • 面试150 回文数
  • python---字典(dict)
  • 从压缩到加水印,如何实现一站式图片处理
  • HDMI-IN调试:双MIPI支持4K60方案
  • AMBA - CHI(5) System coherency Interface
  • 060_泛型擦除与边界限定
  • [2025CVPR:图象合成、生成方向]WF-VAE:通过小波驱动的能量流增强视频 VAE 的潜在视频扩散模型
  • 嵌入式ADC和DMA