热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

值得收藏的String类方法全面解析

本文详细总结了Java中String类的构造函数及常用方法,包括构造函数的多种形式和方法的具体应用,旨在帮助开发者更好地理解和使用String类。

一、String构造函数概述

1. public String()

创建一个新的空字符串对象。由于字符串在Java中是不可变的,因此通常不推荐使用此构造函数。

示例:String s = new String();

2. public String(byte[] bytes)

根据指定的字节数组,使用平台默认的字符集解码创建新的字符串对象。

示例:byte[] bytes = {97, 98, 99}; String s = new String(bytes); // 输出: abc

3. public String(byte[] bytes, int offset, int length)

根据指定的字节子数组,使用平台默认的字符集解码创建新的字符串对象。

参数说明:
- bytes: 字节数组
- offset: 子数组的起始偏移量
- length: 子数组的长度

示例:byte[] bytes = {97, 98, 99}; String s = new String(bytes, 1, 2); // 输出: bc

4. public String(char[] value)

根据指定的字符数组创建新的字符串对象。

示例:char[] chars = {'我', '是', '友', '人', 'A'}; String s = new String(chars); // 输出: 我是友人A

5. public String(char[] value, int offset, int count)

根据指定的字符子数组创建新的字符串对象。

示例:char[] chars = {'我', '是', '友', '人', 'A'}; String s = new String(chars, 1, 3); // 输出: 是友人

6. public String(String original)

创建一个新的字符串对象,使其表示与给定字符串相同的内容。

示例:String s = new String("哈哈哈"); // 输出: 哈哈哈

二、String方法概述

1. public char charAt(int index)

返回指定索引处的字符。索引范围从0到length()-1。

示例:char c = "我是友人A".charAt(3); // 输出: 人

2. public char[] toCharArray()

将字符串转换为字符数组。

示例:char[] chars = "我是友人A".toCharArray(); for (char c : chars) { System.out.print(c + " "); } // 输出: 我 是 友 人 A

3. public int compareTo(String anotherString)

按字典顺序比较两个字符串。比较基于字符串中每个字符的Unicode值。

示例:int result = "abc".compareTo("abc"); // 输出: 0 int result2 = "abce".compareTo("abcd"); // 输出: 1 int result3 = "abcd".compareTo("abce"); // 输出: -1 int result4 = "abcd".compareTo("bcad"); // 输出: -1

4. public boolean contains(CharSequence s)

判断当前字符串是否包含指定的字符序列。

示例:System.out.println("友人A".contains("友五")); // 输出: false System.out.println("友人A".contains("友人")); // 输出: true

5. public boolean endsWith(String suffix)

判断当前字符串是否以指定的后缀结尾。

示例:System.out.println("test.txt".endsWith(".java")); // 输出: false System.out.println("test.txt".endsWith(".txt")); // 输出: true

6. public boolean startsWith(String prefix, int toffset)

判断当前字符串是否以指定的前缀开头,从指定的索引开始比较。

示例:System.out.println("qwwwqwqfdf".startsWith("qw", 1)); // 输出: true

7. public boolean equals(Object anObject)

判断两个字符串是否相等。注意,应使用equals方法而不是==运算符来比较字符串。

示例:System.out.println("abc".equals("abc")); // 输出: true

8. public boolean equalsIgnoreCase(String anotherString)

判断两个字符串是否相等,忽略大小写。

示例:System.out.println("abc".equals("Abc")); // 输出: false System.out.println("abc".equalsIgnoreCase("ABc")); // 输出: true

9. public byte[] getBytes()

将字符串转换为字节数组。

示例:byte[] bytes = "abc".getBytes(); for (byte b : bytes) { System.out.print(b + " "); } // 输出: 97 98 99

10. public int indexOf(String str)

返回指定子字符串在当前字符串中首次出现的索引。

示例:System.out.println("addppqkufppq".indexOf("ppq")); // 输出: 3

11. public int lastIndexOf(String str)

返回指定子字符串在当前字符串中最后一次出现的索引。

示例:System.out.println("addppqkufppq".lastIndexOf("ppq")); // 输出: 9

12. public boolean isEmpty()

判断字符串是否为空。

示例:String s = ""; System.out.println(s.isEmpty()); // 输出: true

13. public int length()

返回字符串的长度,即字符串中Unicode编码单元的数量。

示例:System.out.println("78".length()); // 输出: 2

14. public String replace(CharSequence target, CharSequence replacement)

将字符串中所有出现的目标序列替换为指定的替代序列。

示例:String replaced = "youren@A".replace("@A", "@B"); System.out.println(replaced); // 输出: youren@B

15. public String[] split(String regex)

根据给定的正则表达式拆分字符串,返回一个字符串数组。

示例:String[] parts = "1980-10-11".split("-"); for (String part : parts) { System.out.println(part); } // 输出: 1980 10 11

16. public String substring(int beginIndex, int endIndex)

返回从指定的开始索引到结束索引之间的子字符串。

示例:System.out.println("hhheeefff".substring(3)); // 输出: eeefff System.out.println("hhheeefff".substring(0, 5)); // 输出: hhhee

17. public String toLowerCase()

将字符串转换为小写。

示例:System.out.println("ABCDE".toLowerCase()); // 输出: abcde

18. public String trim()

返回一个新的字符串,该字符串去除了原字符串首尾的所有空白字符。

示例:System.out.println(" hello world ".trim()); // 输出: hello world

深入理解:为什么输出对象时会调用toString()方法?

在Java中,System.out.println() 方法会调用对象的 toString() 方法来获取对象的字符串表示形式。这是因为控制台只能输出字符串,非字符串类型的数据需要转换为字符串才能输出。

valueOf() 方法用于将非字符串类型的数据转换为字符串,而 toString() 方法则是 valueOf() 方法内部调用的方法。当输出一个对象时,实际上是调用了该对象的 toString() 方法,具体行为取决于该对象是否重写了 Object 类中的 toString() 方法。如果没有重写,默认会输出对象的内存地址。

结语

感谢阅读!如果有任何疑问或建议,欢迎在评论区留言。如果本文对您有所帮助,别忘了点赞支持哦!每天都会分享更多Java相关的技术文章和行业资讯,敬请关注和转发。


推荐阅读
author-avatar
手机用户2502877953
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有