替换字符串到位

时间:2013-10-30 00:37:02

标签: java string reverse

我的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); 
   }

}

我应该使用某种数组吗? 提前谢谢!!!

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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+" ";
    }

如果字分隔符是空格或制表符。您必须导入集合和数组类。

答案 2 :(得分: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] + " ");
      }   
    }
}