Java中有关处理string类型变量的函数

1. 基本方法

  • length()

    • 描述: 返回字符串的长度(字符数)。
    • 示例 : "Hello".length() 返回 5
  • charAt(int index)

    • 描述: 返回指定索引处的字符。
    • 示例 : "Hello".charAt(1) 返回 'e'
  • substring(int beginIndex)

    • 描述: 返回从指定索引开始到字符串末尾的子字符串。
    • 示例 : "Hello".substring(2) 返回 "llo"
  • substring(int beginIndex, int endIndex)

    • 描述 : 返回从beginIndex到endIndex(不包括endIndex)的子字符串。
    • 示例 : "Hello".substring(1, 4) 返回 "ell"

2. 搜索与匹配

  • indexOf(String str)

    • 描述 : 返回指定子字符串首次出现的索引,如果未找到则返回 -1。
    • 示例 : "Hello".indexOf("ll") 返回 2
  • lastIndexOf(String str)

    • 描述 : 返回指定子字符串最后一次出现的索引,如果未找到则返回 -1。
    • 示例 : "Hello".lastIndexOf("l") 返回 3
  • contains(CharSequence s)

    • 描述: 判断字符串是否包含指定的子序列。
    • 示例 : "Hello".contains("ell") 返回 true
  • startsWith(String prefix)

    • 描述: 判断字符串是否以指定前缀开始。
    • 示例 : "Hello".startsWith("He") 返回 true
  • endsWith(String suffix)

    • 描述: 判断字符串是否以指定后缀结束。
    • 示例 : "Hello".endsWith("lo") 返回 true

3. 转换与格式化

  • toLowerCase()

    • 描述: 将字符串中的所有字符转换为小写。
    • 示例 : "HELLO".toLowerCase() 返回 "hello"
  • toUpperCase()

    • 描述: 将字符串中的所有字符转换为大写。
    • 示例 : "hello".toUpperCase() 返回 "HELLO"
  • trim()

    • 描述: 去除字符串首尾的空白字符。
    • 示例 : " Hello ".trim() 返回 "Hello"
  • replace(char oldChar, char newChar)

    • 描述: 替换字符串中所有出现的指定字符。
    • 示例 : "Hello".replace('l', 'p') 返回 "Heppo"
  • replace(CharSequence target, CharSequence replacement)

    • 描述: 替换字符串中所有出现的指定子序列。
    • 示例 : "Hello".replace("ll", "pp") 返回 "Heppo"
  • replaceAll(String regex, String replacement)

    • 描述: 使用正则表达式替换字符串中所有匹配的部分。
    • 示例 : "Hello123".replaceAll("\\d", "") 返回 "Hello"
  • replaceFirst(String regex, String replacement)

    • 描述: 使用正则表达式替换字符串中第一个匹配的部分。
    • 示例 : "Hello123".replaceFirst("\\d", "") 返回 "Hello23"

4. 分割与连接

  • split(String regex)

    • 描述: 根据正则表达式将字符串分割成数组。
    • 示例 : "a,b,c".split(",") 返回 ["a", "b", "c"]
  • split(String regex, int limit)

    • 描述: 根据正则表达式将字符串分割成数组,限制分割次数。
    • 示例 : "a,b,c".split(",", 2) 返回 ["a", "b,c"]

5. 比较与判断

  • equals(Object anObject)

    • 描述: 比较两个字符串的内容是否相同。
    • 示例 : "Hello".equals("hello") 返回 false
  • equalsIgnoreCase(String anotherString)

    • 描述: 比较两个字符串在忽略大小写的情况下是否相同。
    • 示例 : "Hello".equalsIgnoreCase("hello") 返回 true
  • compareTo(String anotherString)

    • 描述: 按字典顺序比较两个字符串。
    • 示例 : "apple".compareTo("banana") 返回一个负数
  • compareToIgnoreCase(String str)

    • 描述: 忽略大小写按字典顺序比较两个字符串。
    • 示例 : "apple".compareToIgnoreCase("Banana") 返回一个负数

6. 其他有用的方法

  • isEmpty()

    • 描述: 判断字符串是否为空(长度为0)。
    • 示例 : "".isEmpty() 返回 true
  • toCharArray()

    • 描述: 将字符串转换为字符数组。
    • 示例 : "Hello".toCharArray() 返回 ['H', 'e', 'l', 'l', 'o']
  • intern()

    • 描述: 返回字符串的规范化表示,使用字符串常量池。
    • 示例 : "Hello".intern()
  • matches(String regex)

    • 描述: 判断字符串是否匹配给定的正则表达式。
    • 示例 : "12345".matches("\\d+") 返回 true
  • startsWith(String prefix, int toffset)

    • 描述: 判断字符串从指定索引开始是否以给定前缀开始。
    • 示例 : "Hello".startsWith("ell", 1) 返回 true
  • codePointAt(int index)

    • 描述: 返回指定索引处的字符的Unicode代码点。
    • 示例 : "Hello".codePointAt(1) 返回 101 ('e'的Unicode)
  • codePointBefore(int index)

    • 描述: 返回指定索引前一个字符的Unicode代码点。
    • 示例 : "Hello".codePointBefore(1) 返回 72 ('H'的Unicode)
  • codePointCount(int beginIndex, int endIndex)

    • 描述 : 计算字符串中从beginIndex到endIndex之间的Unicode代码点数量。
    • 示例 : "Hello".codePointCount(0, 5) 返回 5

7. 格式化方法

  • format(String format, Object... args)
    • 描述: 根据指定的格式和参数,返回一个格式化后的字符串。
    • 示例 : String.format("Hello, %s!", "World") 返回 "Hello, World!"

8. 转换为其他类型

  • getBytes()

    • 描述: 将字符串转换为字节数组,使用平台的默认字符集。
    • 示例 : "Hello".getBytes()
  • getBytes(String charsetName)

    • 描述: 将字符串转换为指定字符集的字节数组。
    • 示例 : "Hello".getBytes("UTF-8")

9. 格式化与解析

  • valueOf(...)
    • 描述: 将各种类型的数据转换为字符串。
    • 示例 :
      • String.valueOf(123) 返回 "123"
      • String.valueOf(true) 返回 "true"

10. 静态方法

  • join(CharSequence delimiter, CharSequence... elements)

    • 描述: 将多个字符串用指定的分隔符连接起来。
    • 示例 : String.join(", ", "a", "b", "c") 返回 "a, b, c"
  • copyValueOf(char[] data)

    • 描述: 创建一个新字符串,以字符数组中的字符为内容。
    • 示例 : String.copyValueOf(new char[]{'H', 'i'}) 返回 "Hi"
  • copyValueOf(char[] data, int offset, int count)

    • 描述: 创建一个新字符串,以字符数组中指定范围的字符为内容。
    • 示例 : String.copyValueOf(new char[]{'H', 'e', 'l', 'l', 'o'}, 1, 3) 返回 "ell"

11. 正则表达式相关

  • splitAsStream(String regex)
    • 描述 : 根据正则表达式将字符串分割,并返回一个Stream<String>。
    • 示例 : "a,b,c".splitAsStream(",").forEach(System.out::println)

12. 其他

  • intern()
    • 描述 : 如果字符串常量池中已经包含一个等于此String对象的字符串,则返回池中的字符串;否则,将此String对象添加到池中并返回此String对象的引用。
    • 示例 : String s = new String("Hello").intern();

附加说明

除了String类,Java还提供了StringBuilder和StringBuffer类,这两个类用于在需要频繁修改字符串内容的场景中提供更高效的性能。StringBuilder是非线程安全的,而StringBuffer是线程安全的。

  • StringBuilder常用方法:

    • append(...)
    • insert(...)
    • delete(...)
    • reverse()
    • toString()
  • StringBuffer常用方法:

    • 与StringBuilder类似,但线程安全。
相关推荐
Flynn Liang6 小时前
同一需求三套写法:用 Spring AI、LangChain4j、AgentScope Java 各实现一个带工具调用的 RAG 助手(实战对比)
java·人工智能·大模型·架构设计·spring ai·langchain4j·agentscope
聪明的笨猪猪7 小时前
实际工程问题:AI 生成 Spring Cache(@Cacheable / @CachePut / @CacheEvict)缓存注解踩坑
java·经验分享·面试·ai编程
愿有所息7 小时前
记一次 ARM64 + JDK8 上 fastjson2 的诡异数据错乱
java
SelectDB8 小时前
SelectDB 是哪个公司的?是国产数据库吗?一篇讲清飞轮科技与 Apache Doris 的关系
数据库
秋饼8 小时前
MCP 2026-07-28 无状态协议大改版:Spring AI 2.1 多轮往返请求与网关路由落地
java·ai·技术分享·后端开发
这个DBA有点耶8 小时前
库内计算推理:一条SQL背后的算子融合,和外挂方案差了几次网络往返
数据库·人工智能·sql
SL_staff9 小时前
JVS-BI 实战:业务人员如何用零代码 ELT + 可视化配置构建实时经营分析闭环
java·spring·全栈
SL_staff9 小时前
企业AI落地难?JVS-AI渐进式实践:安全可控、小切口验证、标准化沉淀与规模化复制
java·开源·aigc
这个DBA有点耶10 小时前
函数索引的“完全一致”有多苛刻:写法、字符集、类型,差一处就失效
数据库·mysql·代码规范
星恒随风10 小时前
MySQL 从零入门(三):表的约束详解
linux·服务器·数据库·笔记·mysql