一、整体概述
字符串是Java开发中使用频率极高的数据类型,JDK提供了String不可变字符串、StringBuffer可变字符串两大核心类,同时搭配正则表达式完成复杂文本格式校验、内容提取与替换,日常接口参数校验、文本处理都离不开这部分内容。
二、String类
String底层依靠字符数组存储字符内容,对象一旦创建,字符数组内容无法修改,属于不可变字符串。执行字符串拼接、截取、替换操作时都会生成全新String对象,频繁拼接会产生大量临时垃圾对象,占用堆内存。
==运算符比较字符串对象地址,equals()方法才是真正比对字符串实际内容,开发中必须区分二者用法。该类内置大量实用API:截取子串、字符串分割、字符查找、大小写转换、去除首尾空格、内容包含判断、字符串比较等,能够满足绝大多数基础文本操作需求。
三、StringBuffer类
为解决String频繁拼接效率低下的问题,JDK提供可变字符串StringBuffer,内部字符数组支持动态扩容,append追加、insert插入、delete删除、replace替换等操作直接修改原对象,不会反复创建新字符串。
类中所有方法都添加synchronized同步锁,多线程并发环境下线程安全,但单线程场景执行效率偏低。适合大批量循环字符串拼接场景,可有效减少内存开销。
四、正则表达式
正则表达式是一套自定义字符匹配规则,无需逐字符遍历判断,就能快速校验固定格式文本,也能批量提取、替换指定内容。
依靠正则规则可以校验IP地址、手机号、邮箱、身份证号等标准化格式数据,配套实战案例可以编写正则表达式分段校验IP四段数字取值范围,完成IP合法性完整校验。
五、小节总结
简单少量字符串拼接优先使用String;大批量循环拼接选用StringBuffer保障内存效率;固定格式文本校验、复杂文本解析直接使用正则表达式简化代码。



