Java 调用反向方法

Java 调用反向方法,java,Java,问题:我希望调用reve方法,结果应该是“edcba”。但真正的结果是“abcde”。reve方法不起作用。有什么解决办法吗?非常感谢 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Reverse { public static void main (String args[]) throws IOExcepti

问题:我希望调用reve方法,结果应该是“edcba”。但真正的结果是“abcde”。reve方法不起作用。有什么解决办法吗?非常感谢

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;


public class Reverse {


    public static void main (String args[]) throws IOException

    {
          System.out.println(reve("abcde"));    
    }


    // to reverse a string
    public static String reve(String sentence) {
        StringBuilder sb = new StringBuilder(sentence.length() + 1);
        String[] words = sentence.split(" ");
        for (int i = words.length - 1; i >= 0; i--) {
            sb.append(words[i]).append(' ');
        }
        sb.setLength(sb.length() - 1);  // Strip trailing space
        return sb.toString();
    }

}

split
在这里对您没有帮助,因为字符之间没有空格

 String[] words = sentence.split(" "); 
使用

因此,您可以从
字符串
中获取字符,然后使用循环来反转
字符串
,因为我认为您这样做是正确的,但对于字符数组则相反

或者您也可以使用
charAt(inti)
方法

for (i = sentence.length()-1; i >= 0; i--)
      sb.append(sentence.charAt(i));
    return sb.toString();
注意: 在这里,您可以直接使用
StringBuilder
StringBuffer

System.out.println(new StringBuilder(stringVar).reverse().toString());
System.out.println(new StringBuffer(stringVar).reverse().toString());

因为您正在空间上拆分字符串。由于
“abcde”
没有空格,
split
只提供一个包含一个元素的数组(
“abcde”
),并将其附加到
StringBuilder

因为您已经在使用
StringBuilder
,所以只需执行以下操作即可

public static String reve(String sentence) {
    return new StringBuilder(sentence).reverse().toString();
}
你在太空中分裂。由于字符串
“abcde”
不包含任何空格,因此它只返回一个元素(整个字符串)

一个简单的解决方案是一分为二,这样你就可以把每个字母分开:

String[] words = sentence.split("");
但最推荐的解决方案是将字符串转换为
char
数组,因为在这种情况下,将字符存储在
string
数组中没有意义,因为每个字符串只有一个字符:

char[] letters = sentence.toCharArray();
应该可以正常工作(使用字符数组):


您是否从main调用了reve方法?)您希望从“foo bar”得到什么输出?“乌龟”还是“乌龟”?
char[] letters = sentence.toCharArray();
public static String reve(String sentence) {

  char[] characters = sentence.toCharArray();
  int i = 0;
  int j = sentence.length()-1;

  while(j > i) {
    char temp = characters[i];
    characters[i] = characters[j];
    characters[j] = temp;
    i++;j--;
  }

  return new String(characters);
}