一、字符串基础
字符串是Java编程中最常用的数据类型之一。Java中的字符串被定义为一个类,而非一个基本类型。这意味着字符串可以调用它们所继承的各种方法。
在Java中,可以使用两种方式来创建字符串。第一种使用双引号("")创建字符串字面量,第二种使用String类的构造函数创建字符串。以下是示例代码:
// 使用双引号创建字符串字面量 String str1 = "Hello World!"; // 使用构造函数创建字符串 String str2 = new String("Hello World!");
为了对字符串进行比较,可以使用Java中的equals()方法。以下是示例代码:
String str1 = "Hello World!"; String str2 = new String("Hello World!"); boolean isEqual = str1.equals(str2); if (isEqual) { System.out.println("两个字符串相等."); } else { System.out.println("两个字符串不相等."); }
二、字符串拼接
字符串拼接是将两个或多个字符串连接起来形成一个新的字符串。在Java中,可以使用+号或concat()方法来实现字符串拼接。以下是示例代码:
String str1 = "Hello"; String str2 = "World"; // 使用+号拼接字符串 String str3 = str1 + " " + str2; // 使用concat()方法拼接字符串 String str4 = str1.concat(" ").concat(str2);
在Java 8中,还可以使用StringJoiner类来实现字符串拼接。以下是示例代码:
StringJoiner joiner = new StringJoiner(","); joiner.add("apple"); joiner.add("banana"); joiner.add("cherry"); String result = joiner.toString(); // 结果为"apple,banana,cherry"
三、字符串分割
字符串分割是将一个字符串拆成多个子串的过程。在Java中,可以使用split()方法实现字符串分割。以下是示例代码:
String str = "apple,banana,cherry"; String[] arrOfStr = str.split(","); for (String a : arrOfStr) { System.out.println(a); // 输出结果为apple、banana和cherry,每个字符串单独一行 }
在某些情况下,分割字符串时需要使用正则表达式。以下是示例代码:
String str = "apple,banana,cherry,mango"; String[] arrOfStr = str.split(",|\\s"); // 分割逗号或空格 for (String a : arrOfStr) { System.out.println(a); // 输出结果为apple、banana、cherry和mango,每个字符串单独一行 }
四、字符串替换
字符串替换是将一个字符串中的部分字符替换成另一些字符。在Java中,可以使用replace()方法实现字符串替换。以下是示例代码:
String str = "Hello World!"; String newStr = str.replace("World", "Java"); System.out.println(newStr); // 输出结果为"Hello Java!"
在替换字符串时,还可以使用正则表达式。以下是示例代码:
String str = "Hello 123, World 456!"; String newStr = str.replaceAll("\\d", "X"); // 将数字替换成X System.out.println(newStr); // 输出结果为"Hello XXX, World XXX!"
五、字符串格式化
字符串格式化是指将字符串中的占位符替换成实际的值。在Java中,可以使用String类的format()方法实现字符串格式化。以下是示例代码:
String name = "Tom"; int age = 20; String str = String.format("My name is %s, and I am %d years old.", name, age); System.out.println(str); // 输出结果为"My name is Tom, and I am 20 years old."
在格式化字符串时,可以使用不同的占位符来表示不同的数据类型。以下是示例代码:
int value = 123; String str1 = String.format("%d", value); // 输出结果为"123" String str2 = String.format("%010d", value); // 输出结果为"0000000123" double price = 45.67; String str3 = String.format("%.2f", price); // 输出结果为"45.67"
六、字符串比较
字符串比较是将两个字符串进行比较并返回比较结果。在Java中,可以使用compareTo()方法实现字符串比较。以下是示例代码:
String str1 = "Hello"; String str2 = "World"; int result = str1.compareTo(str2); if (result < 0) { System.out.println("str1在str2之前."); } else if (result > 0) { System.out.println("str1在str2之后."); } else { System.out.println("两个字符串相等."); }
注意compareTo()方法是区分大小写的。如果要进行不区分大小写的比较,可以使用compareToIgnoreCase()方法。
七、字符串查找
字符串查找是指查找一个字符串中是否包含另一个字符串。在Java中,可以使用contains()方法实现字符串查找。以下是示例代码:
String str = "Hello World!"; boolean found = str.contains("World"); if (found) { System.out.println("字符串中包含'World'."); } else { System.out.println("字符串中不包含'World'."); }
如果要查找字符串中某个字符或字符串的位置,可以使用indexOf()方法或lastIndexOf()方法。以下是示例代码:
String str = "Hello World!"; int index1 = str.indexOf("o"); // 返回首次出现'o'的位置,结果为4 int index2 = str.lastIndexOf("o"); // 返回最后一次出现'o'的位置,结果为7
八、字符串大小写转换
字符串大小写转换是指将一个字符串的大小写进行转换。在Java中,可以使用toUpperCase()方法将字符串转换成大写,使用toLowerCase()方法将字符串转换成小写。以下是示例代码:
String str1 = "Hello World!"; String str2 = str1.toUpperCase(); // 将字符串转换成大写 String str3 = str1.toLowerCase(); // 将字符串转换成小写
九、字符串去空格
字符串去空格是指将一个字符串中的空格去除。在Java中,可以使用trim()方法实现字符串去空格。以下是示例代码:
String str1 = " Hello World! "; String str2 = str1.trim(); // 去除字符串两端的空格 System.out.println(str2); // 输出结果为"Hello World!"
需要注意的是,trim()方法只会去除字符串两端的空格,不会去除字符串中间的空格。
十、字符串转换为基本数据类型
在Java中,字符串可以转换为各种基本数据类型,例如整型、浮点型等。以下是示例代码:
String str1 = "123"; int intVal = Integer.parseInt(str1); // 将字符串转换成整型,结果为123 String str2 = "45.67"; double doubleVal = Double.parseDouble(str2); // 将字符串转换成浮点型,结果为45.67
需要注意的是,如果要转换的字符串不是合法的基本数据类型,则会抛出NumberFormatException异常。