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

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

字符串缓冲区(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.dtcms.com/a/299833.html

相关文章:

  • I/O 软件层次结构
  • 分布式数据库的分布透明性详解
  • 【前端】Vue 3 课程选择组件开发实战:从设计到实现
  • 如何从自定义或本地仓库安装 VsCode 扩展
  • 手写PPO_clip(FrozenLake环境)
  • 统计学08:概率分布
  • 面试实战,问题十二,Spring Boot接收和处理HTTP请求的详细原理,怎么回答
  • AI 编程工具 Trae 重要的升级。。。
  • 二维数组相关学习
  • 栈----3.字符串解码
  • 论文阅读-RaftStereo
  • 2025中国GEO优化白皮书:AI搜索优化趋势+行业数据报告
  • 应急控制HMI的“黄金10秒”设计:紧急场景下的操作路径极速简化技术
  • 嵌入式硬件篇---有线串口通信问题解决
  • PHP语法高级篇(六):面向对象编程
  • MyBatis-Plus 核心注解详解:从表映射到逻辑删除的全方位指南
  • C++/CLI vs 标准 C++ vs C# 语法对照手册
  • 9.3 快速傅里叶变换
  • 深度解析 noisereduce:开源音频降噪库实践
  • 深入理解Redission释放锁过程
  • Blender入门笔记(一)
  • 利用RAII与析构函数避免C++资源泄漏
  • 基于DataX的数据同步实战
  • 中电建路桥集团有限公司重大项目管理办公室成立
  • 【安全漏洞】网络守门员:深入理解与应用iptables,守护Linux服务器安全
  • Linux 如何统计系统上各个用户登录(或者登出)记录出现的次数?
  • Ubuntu安装node-red
  • 磁悬浮轴承转子不平衡质量控制策略设计:原理、分析与智能实现
  • C/C++中常量放置在比较操作符左侧
  • 基于匿名管道的多进程任务池实现与FD泄漏解决方案