深入剖析 Java String 类:掌握字符串操作的艺术
String 类是 Java 中最基础、最常用的类之一,它用于表示文本字符串。String 类提供了丰富的 API,可以用来操作字符串,例如连接、分割、查找、替换等。
本篇博客将深入剖析 String 类,并通过详细的代码示例展示其所有常用方法的用途,让你真正掌握字符串操作的艺术。
1. 创建字符串对象
String str1 = "Hello"; // 使用字面量创建字符串对象
String str2 = new String("World"); // 使用构造函数创建字符串对象
-
字面量创建: 直接使用双引号括起来的字符串字面量创建字符串对象,这是最常用的方式。
-
构造函数创建: 使用 new String() 构造函数创建字符串对象,可以指定字符串内容。
2. 获取字符串长度
String str = "Hello World!";
int length = str.length(); // 返回字符串长度,结果为 12
System.out.println("字符串长度为:" + length);
-
length() 方法返回字符串中字符的个数。
3. 连接字符串
String str1 = "Hello";
String str2 = "World";
// 使用 + 运算符连接字符串
String str3 = str1 + " " + str2;
System.out.println(str3); // 输出结果为 "Hello World"
// 使用 join() 方法连接字符串
String str4 = String.join(" ", str1, str2);
System.out.println(str4); // 输出结果为 "Hello World"
// 使用 format() 方法连接字符串
String str5 = String.format("%s %s", str1, str2);
System.out.println(str5); // 输出结果为 "Hello World"
-
+ 运算符: 最简单直接的连接方式,可以连接多个字符串。
-
join() 方法: 可以指定分隔符连接多个字符串,更灵活。
-
format() 方法: 可以使用占位符格式化字符串,更强大。
4. 访问单个字符
String str = "Hello";
char ch = str.charAt(1); // 返回字符串第二个字符,结果为 'e'
System.out.println(ch);
// 访问字符串中每个字符
for (int i = 0; i < str.length(); i++) {
System.out.println("第 " + (i + 1) + " 个字符是:" + str.charAt(i));
}
-
charAt(int index) 方法返回指定位置的字符。
5. 查找子字符串
String str = "Hello World!";
int index1 = str.indexOf("World"); // 返回子字符串 "World" 在字符串中的第一个出现位置,结果为 6
System.out.println("World 在字符串中的位置:" + index1);
int index2 = str.lastIndexOf("l"); // 返回子字符串 "l" 在字符串中的最后一个出现位置,结果为 9
System.out.println("最后一个 'l' 的位置:" + index2);
-
indexOf(String str) 方法返回指定子字符串在字符串中第一次出现的位置。
-
lastIndexOf(String str) 方法返回指定子字符串在字符串中最后一次出现的位置。
6. 替换子字符串
String str = "Hello World!";
String newStr = str.replace("World", "Java"); // 将字符串中的 "World" 替换为 "Java",结果为 "Hello Java!"
System.out.println(newStr);
String str2 = "Hello World! World!";
String newStr2 = str2.replaceAll("World", "Java"); // 将所有 "World" 替换为 "Java",结果为 "Hello Java! Java!"
System.out.println(newStr2);
-
replace(CharSequence target, CharSequence replacement) 方法将所有出现的目标字符串替换为指定字符串。
-
replaceAll(String regex, String replacement) 方法使用正则表达式替换字符串。
7. 比较字符串
String str1 = "Hello";
String str2 = "hello";
boolean isEqual = str1.equals(str2); // 比较两个字符串是否相等,结果为 false
System.out.println("str1 和 str2 是否相等:" + isEqual);
boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 忽略大小写比较两个字符串是否相等,结果为 true
System.out.println("忽略大小写比较 str1 和 str2 是否相等:" + isEqualIgnoreCase);
-
equals(Object obj) 方法比较两个字符串是否相等。
-
equalsIgnoreCase(String anotherString) 方法忽略大小写比较两个字符串是否相等。
8. 提取子字符串
String str = "Hello World!";
String subStr = str.substring(6); // 提取字符串从索引 6 开始到结尾的子字符串,结果为 "World!"
System.out.println(subStr);
String subStr2 = str.substring(0, 5); // 提取字符串从索引 0 到 4 的子字符串,结果为 "Hello"
System.out.println(subStr2);
-
substring(int beginIndex) 方法提取从指定位置开始到字符串结尾的子字符串。
-
substring(int beginIndex, int endIndex) 方法提取从指定开始位置到结束位置的子字符串。
9. 将字符串转换为其他数据类型
String str = "123";
int num = Integer.parseInt(str); // 将字符串 "123" 转换为整数 123
System.out.println(num);
String str2 = "3.14";
double d = Double.parseDouble(str2); // 将字符串 "3.14" 转换为双精度浮点数 3.14
System.out.println(d);
-
Integer.parseInt(String s) 将字符串转换为整数。
-
Double.parseDouble(String s) 将字符串转换为双精度浮点数。
10. 将其他数据类型转换为字符串
int num = 123;
String str = String.valueOf(num); // 将整数 123 转换为字符串 "123"
System.out.println(str);
double d = 3.14;
String str2 = String.valueOf(d); // 将双精度浮点数 3.14 转换为字符串 "3.14"
System.out.println(str2);
-
String.valueOf(int i) 将整数转换为字符串。
-
String.valueOf(double d) 将双精度浮点数转换为字符串。
11. 移除字符串首尾空格
String str = " Hello World! ";
String trimmedStr = str.trim(); // 移除字符串首尾空格,结果为 "Hello World!"
System.out.println(trimmedStr);
-
trim() 方法移除字符串首尾空格。
12. 将字符串转换为字符数组
String str = "Hello";
char[] chars = str.toCharArray(); // 将字符串 "Hello" 转换为字符数组
for (char c : chars) {
System.out.println(c);
}
-
toCharArray() 方法将字符串转换为字符数组。
13. 判断字符串是否为空
String str1 = "Hello";
String str2 = "";
boolean isEmpty1 = str1.isEmpty(); // 判断字符串是否为空,结果为 false
System.out.println("str1 是否为空:" + isEmpty1);
boolean isEmpty2 = str2.isEmpty(); // 判断字符串是否为空,结果为 true
System.out.println("str2 是否为空:" + isEmpty2);
-
isEmpty() 方法判断字符串是否为空。
14. 将字符串转换为大写
String str = "Hello World!";
String upperStr = str.toUpperCase(); // 将字符串转换为大写,结果为 "HELLO WORLD!"
System.out.println(upperStr);
-
toUpperCase() 方法将字符串中的所有字符转换为大写。
15. 将字符串转换为小写
String str = "Hello World!";
String lowerStr = str.toLowerCase(); // 将字符串转换为小写,结果为 "hello world!"
System.out.println(lowerStr);
-
toLowerCase() 方法将字符串中的所有字符转换为小写。
16. 判断字符串是否以指定字符串开头
String str = "Hello World!";
boolean startsWithHello = str.startsWith("Hello"); // 判断字符串是否以 "Hello" 开头,结果为 true
System.out.println("str 以 'Hello' 开头吗?" + startsWithHello);
-
startsWith(String prefix) 方法判断字符串是否以指定字符串开头。
17. 判断字符串是否以指定字符串结尾
String str = "Hello World!";
boolean endsWithWorld = str.endsWith("World!"); // 判断字符串是否以 "World!" 结尾,结果为 true
System.out.println("str 以 'World!' 结尾吗?" + endsWithWorld);
-
endsWith(String suffix) 方法判断字符串是否以指定字符串结尾。
18. 判断字符串是否包含指定字符串
String str = "Hello World!";
boolean containsWorld = str.contains("World"); // 判断字符串是否包含 "World",结果为 true
System.out.println("str 包含 'World' 吗?" + containsWorld);
-
contains(CharSequence s) 方法判断字符串是否包含指定字符串。
结语:希望以上知识点能够帮助各位看官更好地理解和使用 String 类,多加练习,毕竟String类是Java当中比较重要的工具,感谢各位看官,下期见,谢谢~
标签:Java,String,println,API,str,字符串,World,Hello From: https://blog.csdn.net/weixin_64178283/article/details/142110461