📜  反向字符串java(1)

📅  最后修改于: 2023-12-03 14:50:32.808000             🧑  作者: Mango

反向字符串 Java

在 Java 中,我们有多种方法可以反向字符串。本文将介绍其中的几种方法,包括使用 StringBuilder 和 CharArray,以及使用 Java 8 的 StringJoiner 和 Stream API。

使用 StringBuilder

我们可以使用 StringBuilder 类中的 reverse() 方法来反向字符串。以下是示例代码:

String str = "Hello World";
StringBuilder sb = new StringBuilder(str);
String reversedStr = sb.reverse().toString();
System.out.println(reversedStr); //输出dlroW olleH

这里我们首先将原始字符串传入 StringBuilder 构造函数中,然后调用 reverse() 方法,最后调用 toString() 方法将 StringBuilder 对象转换为字符串类型。

使用 CharArray

我们也可以将字符串转换为字符数组,然后使用双指针的方式对字符数组进行操作。以下是示例代码:

String str = "Hello World";
char[] charArray = str.toCharArray();
int i = 0;
int j = charArray.length - 1;
while(i<j){
    char temp = charArray[i];
    charArray[i] = charArray[j];
    charArray[j] = temp;
    i++;
    j--;
}
String reversedStr = new String(charArray);
System.out.println(reversedStr); //输出dlroW olleH

这里我们首先将原始字符串转换为字符数组,然后使用双指针方法对数组进行操作,最后将字符数组转换为字符串类型。

使用 StringJoiner

Java 8 新增加了 StringJoiner 类,我们可以使用该类来拼接字符串。以下是示例代码:

String str = "Hello World";
StringJoiner sj = new StringJoiner("");
for(int i=str.length()-1;i>=0;i--){
    sj.add(String.valueOf(str.charAt(i)));
}
String reversedStr = sj.toString();
System.out.println(reversedStr); //输出dlroW olleH

这里我们首先初始化一个 StringJoiner 对象,然后使用 add() 方法向对象中添加字符串,最后将 StringJoiner 对象转换为字符串类型。

使用 Stream API

Java 8 还新增加了 Stream API,我们可以使用该 API 来操作字符串。以下是示例代码:

String str = "Hello World";
String reversedStr = Arrays.stream(str.split(""))
        .reduce("", (s, c) -> c + s);
System.out.println(reversedStr); //输出dlroW olleH

这里我们将原始字符串按字符分隔成为一个字符串数组,然后使用 reduce() 方法结合 Stream API 对数组中的字符进行操作,最后将操作结果转换为字符串类型。

以上就是在 Java 中反向字符串的几种方法,每种方法都有不同的优劣点。需要根据实际场景选择合适的方法。