在Java中,若要保持原始字符顺序不变,但又要反向输出字符串,可以通过一些技巧来实现。一种方法是先将字符串转换为字符数组,然后对数组进行反向操作,最后再将字符数组合并成一个新的字符串。
简单直接的方法:
? 使用StringBuilder的内置reverse()方法。
public String reverseString(String str) {? ?
? return new StringBuilder(str).reverse().toString();
}
以下是一个简单的示例:
```java
public class Main {
? ? public static void main(String[] args) {
? ? ? ? String originalStr = "Hello, world!";
? ? ? ? char[] charArray = originalStr.toCharArray();
? ? ? ? int n = charArray.length;
? ? ? ? // 从两边向中间进行操作,保持原始字符顺序不变
? ? ? ? for (int i = 0; i < n / 2; i++) {
? ? ? ? ? ? char temp = charArray[i];
? ? ? ? ? ? charArray[i] = charArray[n - i - 1];
? ? ? ? ? ? charArray[n - i - 1] = temp;
? ? ? ? }
? ? ? ? String reversedStr = new String(charArray);
? ? ? ? System.out.println("原始字符串: " + originalStr);
? ? ? ? System.out.println("反向后的字符串: " + reversedStr);
? ? }
}
```
这段代码会输出:
```
原始字符串: Hello, world!
反向后的字符串: !dlrow ,olleH
```
如你所见,原始字符顺序保持不变,但是字符串中的字符被反向输出了。