在java中,在不更改空格的情况下反转字符串

在java中,在不更改空格的情况下反转字符串,java,regex,string,Java,Regex,String,我正在一个字一个字地反转字符串,确保所有空格、制表符和空白字符等都没有更改或删除。我尝试了一些使用Java的解决方案,但没有得到好的结果。例如,要转换以下字符串 The rule about++[] the input stream. 并在不删除任何空白字符的情况下获得这样的输出 ehT elur tuoba++[] eht tupni maerts. 我的代码 String reverseS

我正在一个字一个字地反转字符串,确保所有空格、制表符和空白字符等都没有更改或删除。我尝试了一些使用Java的解决方案,但没有得到好的结果。例如,要转换以下字符串

 The rule       about++[]      the     input

        stream.
并在不删除任何空白字符的情况下获得这样的输出

 ehT elur       tuoba++[]      eht     tupni

        maerts.
我的代码

String reverseString(String str) {
    StringBuilder temp = new StringBuilder();
    StringBuilder result = new StringBuilder();
    for (char ch : str.toCharArray()) {
        if (Character.isAlphabetic(ch)) {
            temp.append(ch);
        } else {
            result.append(temp.reverse()).append(ch);
            temp.delete(0, temp.length());
        }
    }
    result.append(temp);
    return result.toString();
}
我在一个问题上得到了相同的结果,关于+++[]的单词
应该是
][++tuoba0
其中
它是这样显示的
tuoba++[]
。有什么办法解决这个问题吗?

++
[]
不是按字母顺序排列的,所以您对待它们的方式与对待空白的方式相同。可以帮助您解决问题。

+
[]
不是按字母顺序排列的,因此您对待它们的方式与对待空白的方式相同。可以帮助您解决问题。

尝试更改

if (Character.isAlphabetic(ch)) {

这样,您将包括所有非空白字符。否则,您将只反转
[
]
+
不是的字母字符。

尝试更改

if (Character.isAlphabetic(ch)) {


通过这种方式,您将包括所有非空白字符。否则,您将只反转
[
]
++
非空白的字母字符。

根据您的预期,预期的输出不应该反转为
而不是
tuoba++[]
?根据您的预期,预期输出是否应该将[]+
大约[]+
反转为
][++tuoba0
而不是
tuoba++[]