您的位置:

Java字符串操作

一、字符串基础

字符串是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异常。