0

我在我的 Intro Java 类中遇到了一个问题,这个问题有点超出我的想象。

问题是要求用户输入一个字符串并输出相同的字符串反转

示例输入:“你今天过得怎么样?” 示例输出:“今天?你过得怎么样”

我不知所措,甚至不知道如何开始解决这个问题......任何提示将不胜感激。

我尝试过反转字符串,但它只是向后读取。

package reverseinplace;

import java.util.*;

public class ReverseInPlace {
    public static void main(String[] args) {
        String original, reverse = "";
        Scanner in = new Scanner(System.in);
        System.out.println("Enter a string to reverse");
        original = in.nextLine();
        int length = original.length();
        for ( int i = length - 1 ; i >= 0 ; i-- )
            reverse = reverse + original.charAt(i);
        System.out.println("Reverse of entered string is: "+reverse); 
   }

}

我应该使用某种数组吗?先感谢您!!!

4

3 回答 3

2

看一下字符串 API。您可以使用该split()方法获取所有单词的数组。

然后,您可以以相反的顺序遍历数组,以用相反的顺序重新创建一个新的字符串。

您可能希望使用StringBuilder该类来创建新字符串。

于 2013-10-30T00:38:44.103 回答
0

谢谢大家的意见。我搞砸了一点,并在我自己的解决方案中得到了这样的东西,它就成功了。

import java.util.*;

public class ReverseInPlace {
    public static void main(String[] args) {
      String original, reverse = "";
      Scanner in = new Scanner(System.in);
      System.out.println("Enter a string to reverse");
      original = in.nextLine();
      String[] words = original.split("\\s+");
      System.out.print ("Reversed String in Place:" + " ");
      for (int i = words.length - 1; i >= 0; i-- ){
          System.out.print (words[i] + " ");
      }   
    }
}
于 2013-12-04T20:42:48.700 回答
0
String input = "How are you doing today?";
String[] inputAsArray = input.split(" ");
Collections.reverse(Arrays.asList(inputAsArray));
String output="";
    for (String inputAsArray1 : inputAsArray) {
        output+=inputAsArray1+" ";
    }

如果单词分隔符是空格或制表符。您必须导入 Collections 和 Arrays 类。

于 2013-10-30T01:22:18.837 回答