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)

    • 描述 : 返回从beginIndexendIndex(不包括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)

    • 描述 : 计算字符串中从beginIndexendIndex之间的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还提供了StringBuilderStringBuffer类,这两个类用于在需要频繁修改字符串内容的场景中提供更高效的性能。StringBuilder是非线程安全的,而StringBuffer是线程安全的。

  • StringBuilder常用方法:

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

    • StringBuilder类似,但线程安全。
相关推荐
9523630 分钟前
Spring-cloud配置中心
java·spring·spring cloud·微服务
ydd10010041 分钟前
寻找两个正序数组的中位数 Java 题解,二分分割详解
java·开发语言
老纪的技术唠嗑局1 小时前
超级干货分享:中小企业使用 OceanBase 实践经验汇总
数据库
CLOUD ACE2 小时前
谷歌云代理|零售商Target 如何利用 Spanner Graph 提升零售发现体验并将数据库维护成本降低 50%
数据库·零售
真上帝的左手2 小时前
10. 软件设计&架构-Spring Security 7 整合CAS SSO 单点登录
java·spring·架构·sso
AI大模型-小雄2 小时前
Codex写分页接口为什么越翻越慢?用Cursor Pagination解决重复与漏数据
大数据·数据库·elasticsearch·搜索引擎·chatgpt·后端开发·codex
Zane19942 小时前
单例线程安全、生产者消费者、死锁:并发面试三连问串讲
java·后端
少晓年3 小时前
从 MySQL 迁移到人大金仓 KingbaseES:完整指南与实践
数据库·mysql
云烟成雨TD3 小时前
Micrometer 系列【42】链路追踪:Span 体系 | 核心 API
java·链路追踪·micrometer
SelectDB3 小时前
Apache Doris AI RAG 实战:从基础 RAG 到知识图谱增强的技术能力与选型
数据库