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

Java中字符串(String类)的常用方法

以下是Java中字符串(String类)的常用方法分类详解,包含核心方法说明和示例代码:


一、字符串基础信息

方法说明示例输出
length()返回字符串长度"Hello".length()5
isEmpty()判断字符串是否为空(长度是否为0)"".isEmpty()true
charAt(int index)返回指定索引处的字符"Java".charAt(2)'v'

二、字符串内容判断

方法说明示例输出
equals(Object obj)比较字符串内容是否相等(区分大小写)"java".equals("Java")false
equalsIgnoreCase(String str)比较字符串内容是否相等(不区分大小写)"java".equalsIgnoreCase("Java")true
contains(CharSequence s)判断是否包含指定字符序列"Hello".contains("ell")true
startsWith(String prefix)判断是否以指定前缀开头"File.txt".startsWith("File")true
endsWith(String suffix)判断是否以指定后缀结尾"Image.jpg".endsWith(".png")false

三、字符串操作

方法说明示例输出
substring(int beginIndex)截取从beginIndex到末尾的子串"Hello".substring(2)"llo"
substring(int begin, int end)截取[begin, end)区间的子串"Java".substring(1, 3)"av"
concat(String str)拼接字符串(等效于+操作符)"Hello".concat(" World")"Hello World"
replace(char old, char new)替换所有old字符为new字符"apple".replace('p', 'b')"abble"
replaceAll(String regex, String replacement)使用正则替换所有匹配内容"a1b2".replaceAll("\\d", "-")"a-b-"

四、字符串转换

方法说明示例输出
toLowerCase()转换为全小写"Java".toLowerCase()"java"
toUpperCase()转换为全大写"Java".toUpperCase()"JAVA"
trim()去除首尾空白符" Hello ".trim()"Hello"
split(String regex)按正则分割字符串为数组"a,b,c".split(",")["a", "b", "c"]

五、字符串查找

方法说明示例输出
indexOf(String str)返回str首次出现的索引(未找到返回-1"Java".indexOf("a")1
lastIndexOf(String str)返回str最后一次出现的索引"banana".lastIndexOf("a")5
matches(String regex)判断是否匹配正则表达式"123".matches("\\d+")true

六、格式化与转换

方法说明示例输出
format(String format, Object... args)格式化字符串(静态方法)String.format("%s:%d", "ID", 100)"ID:100"
valueOf(Object obj)将对象转换为字符串(静态方法)String.valueOf(3.14)"3.14"

七、正则表达式操作

方法说明示例
replaceFirst(String regex, String replacement)替换第一个匹配项"a1b2".replaceFirst("\\d", "-")"a-b2"
split(String regex, int limit)按正则分割字符串,限制分割次数"a,b,c".split(",", 2)["a", "b,c"]

注意事项

  1. 字符串不可变性:所有操作均返回新字符串,原字符串不变。

    String s = "Hello";
    s.toUpperCase(); // 原字符串s仍为"Hello"
    String s2 = s.toUpperCase(); // s2 = "HELLO"
    
  2. 性能优化:频繁拼接字符串时使用StringBuilder代替+

    StringBuilder sb = new StringBuilder();
    sb.append("Hello").append(" World");
    String result = sb.toString();
    
  3. 正则转义:特殊字符需转义(如.需写为\\.)。

    "file.txt".split("\\."); // 正确分割为["file", "txt"]
    

综合示例:解析CSV数据

String csv = "Name,Age,City\nAlice,30,New York\nBob,25,San Francisco";
String[] rows = csv.split("\n");
for (String row : rows) {String[] columns = row.split(",");System.out.println(Arrays.toString(columns));
}

输出

[Name, Age, City]
[Alice, 30, New York]
[Bob, 25, San Francisco]

掌握这些方法能高效处理字符串操作,建议结合具体场景灵活使用!

相关文章:

  • 海康威视摄像头C#开发指南:从SDK对接到安全增强与高并发优化
  • win7无线网络名称显示为编码,连接对应网络不方便【解决办法】
  • 基于springboot的校园二手电动车 交易可视化系统【附源码】
  • 【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问
  • docker- Harbor 配置 HTTPS 协议的私有镜像仓库
  • Pytorch针对不同电脑配置详细讲解+安装(CPU)
  • Prompt Tuning:高效微调大模型的新利器
  • 基于CATIA参数化圆锥建模的自动化插件开发实践——NX建模之圆锥体命令的参考与移植(二)
  • 零基础设计模式——创建型模式 - 单例模式
  • Qt项目开发中所遇
  • 基于Springboot + vue3实现的工商局商家管理系统
  • 使用 lock4j-redis-template-spring-boot-starter 实现 Redis 分布式锁
  • 图像处理基础知识
  • Vue百日学习计划Day46-48天详细计划-Gemini版
  • CentOS Stream 9 中部署 MySQL 8.0 MGR(MySQL Group Replication)一主两从高可用集群
  • YOLOv8 的双 Backbone 架构:解锁目标检测新性能
  • SQLynx 团队协作实践:提升数据库开发效率的解决方案​
  • [luogu12542] [APIO2025] 排列游戏 - 交互 - 博弈 - 分类讨论 - 构造
  • Spark大数据分析案例(pycharm)
  • pycharm无法正常调试问题
  • 渝昆高铁云南段路基土石方工程已完成97%,桥隧施工完成超90%
  • 视频|黎明:年轻人已经不相信爱情了吗?
  • 重庆一男大学生掉进化粪池死亡,重庆对外经贸学院:以学校通报为准
  • 俄罗斯哈巴罗夫斯克市首次举办“俄中论坛”
  • 中国戏剧梅花奖终评结果公示,蓝天和朱洁静等15名演员入选
  • 述评:赖清德当局上台一年恶行累累