在 Java 中 String 类的常用方法有哪些?

String 类的常用方法

1. length()
  • 用途:获取字符串的长度。
  • 示例int len = "Hello".length(); // len == 5
  • 建议:使用这个方法来检查字符串是否为空或者确定字符串的大小。
  • 注意事项:空字符串的长度为0。
2. charAt(int index)
  • 用途:返回指定索引处的字符。
  • 示例char c = "Hello".charAt(1); // c == 'e'
  • 建议:用于提取字符串中的特定字符。
  • 注意事项:索引从0开始,超出范围会抛出 StringIndexOutOfBoundsException
3. substring(int beginIndex, int endIndex)
  • 用途:返回从 beginIndex 到 endIndex - 1 的子字符串。
  • 示例String sub = "Hello World".substring(6, 11); // sub == "World"
  • 建议:用于截取字符串的一部分。
  • 注意事项endIndex 不包含在子串中,超出范围同样会抛出异常。
4. indexOf(String str)
  • 用途:返回指定子字符串首次出现的位置。
  • 示例int pos = "Hello World".indexOf("o"); // pos == 4
  • 建议:查找字符串中特定子串的位置。
  • 注意事项:如果找不到子串,则返回 -1
5. lastIndexOf(String str)
  • 用途:返回指定子字符串最后一次出现的位置。
  • 示例int pos = "Hello World".lastIndexOf("o"); // pos == 7
  • 建议:如果字符串中有重复子串,可以用此方法找到最后一个出现的位置。
  • 注意事项:如果没有找到子串,也会返回 -1
6. startsWith(String prefix)
  • 用途:判断字符串是否以指定的前缀开头。
  • 示例boolean starts = "Hello World".startsWith("Hello"); // starts == true
  • 建议:用于字符串的匹配或验证。
  • 注意事项:区分大小写。
7. endsWith(String suffix)
  • 用途:判断字符串是否以指定的后缀结尾。
  • 示例boolean ends = "Hello World".endsWith("ld"); // ends == true
  • 建议:用于文件名或路径的验证。
  • 注意事项:同样区分大小写。
8. trim()
  • 用途:删除字符串两端的空白字符。
  • 示例String trimmed = " Hello ".trim(); // trimmed == "Hello"
  • 建议:在处理用户输入或读取文件内容时非常有用。
  • 注意事项:不会删除中间的空白字符。
9. toUpperCase()toLowerCase()
  • 用途:将字符串转换为大写或小写。
  • 示例String upper = "hello".toUpperCase(); // upper == "HELLO"
  • 建议:在进行文本处理时经常需要调整字符串的大小写。
  • 注意事项:操作后的字符串是新的字符串,原字符串不变。
10. replace(char oldChar, char newChar)
  • 用途:替换字符串中所有的 oldChar 为 newChar
  • 示例String replaced = "Hello World".replace('l', 'L'); // replaced == "HeLLo WorLd"
  • 建议:用于简单的字符串替换。
  • 注意事项:替换操作生成新的字符串,原字符串不变。
11. split(String regex)
  • 用途:按照给定的正则表达式分割字符串。
  • 示例String[] parts = "a,b,c,d".split(","); // parts[0] == "a", parts[1] == "b" ...
  • 建议:用于解析CSV或配置文件等。
  • 注意事项:正则表达式的使用需要小心,尤其是特殊字符的转义。
12. concat(String str)
  • 用途:将一个字符串连接到另一个字符串的末尾。
  • 示例String result = "Hello".concat(" World"); // result == "Hello World"
  • 建议:虽然简单,但在多次连接时不如使用 StringBuilder 高效。
  • 注意事项:每次调用都会创建新的字符串。

合理化建议

  • 性能考虑:当涉及到大量字符串操作时,比如频繁地拼接字符串,推荐使用 StringBuilder 或 StringBuffer,因为它们可以提供更好的性能。
  • 安全性:使用 equals 方法而不是 == 进行字符串比较,因为 == 只比较引用。
  • 代码清晰性:尽量使用方法链来简化代码,例如 str.trim().toLowerCase().
  • 国际化:考虑使用 String 类的 normalize 方法处理Unicode字符串,确保字符串正确显示。

注意事项

  • 不可变性String 类的对象是不可变的,这意味着一旦创建了一个 String 对象,就不能更改它的值。因此,所有的修改操作实际上都会创建一个新的字符串。
  • 内存消耗:由于 String 的不可变性,频繁创建字符串可能会导致额外的内存消耗。
  • 字符串池:Java 会自动将字符串放入字符串池中,如果可能的话,尽量复用字符串,减少内存负担。

以上就是关于 String 类的一些常见方法及其使用建议和注意事项。希望对你有所帮助!如果你还有其他问题,欢迎继续提问。

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值