如何完成反向字符串?

时间:2010-10-17 06:30:57

标签: java string reverse

所以我的老师告诉我要制作一个字符串,使我输入的内容按相反的顺序排列 (例如“你好那里”变成“ereht olleh”)。到目前为止,我在身体上工作,我想出了这个

   public class Main {

/**
 * @param args the command line arguments
 */     

  public static void main(String[] args) {
  (The input needs to be in here)}}



    public static String rev(String str) {

    String reversed = "hello there";
    for (int i = 0; i < str.length(); i++) {
        reversed = str.charAt(i) + reversed;
    }
    return reversed;

我现在的问题是我需要在 public static void main(String [] args)下放置它才能使它工作。是的,我明白这是家庭作业,我试着通过这本书寻求帮助(没有运气)。我试着在互联网上寻找(没有运气,多亏了我对更先进的方法的了解不多)。我将不胜感激任何帮助,并提前感谢任何人。 我使用netbeans,如果这会有所帮助。

4 个答案:

答案 0 :(得分:6)

public static String rev(String str) {
  String reversed = "";
  for (int i = 0; i < str.length(); i++) {
      reversed = str.charAt(i) + reversed;
  }
  return reversed;
}

public static void main(String[] args) {
  if (args.length > 0) {
    System.out.println(rev(args[0]));
  }
}

阅读args数组。

答案 1 :(得分:3)

少数事情:

由于您要将字符反向添加到字符串reversed,因此它应该是一个空字符串开头:

String reversed = "";

要从main调用此方法,请将需要反转的字符串传递给它。类似的东西:

public static void main(String...args[]) {
  System.out.println(rev("hello there"));
}

或者,您可以将要反转的字符串作为用户的输入读取,然后将其传递给rev函数。

答案 2 :(得分:2)

考虑到家庭作业标签,尽量使其尽可能不透明,您至少应该重新检查reversed的初始值。你拥有它的方式,你将得到一个除了所需的"ereht olleh"之外的其他东西。

关于如何从命令行获取参数的具体问题,下面打印出所有参数,并为您自己的代码奠定良好的基础:

public static void main (String[] args) {
    for (int i = 0; i < args.length; i++)
        System.out.println (args[i]);
    }
}

答案 3 :(得分:0)

阅读控制台输入:

public static void main(String[] args) {
  String curLine = ""; // Line read from standard in
  System.out.println("Enter a line of text");
  InputStreamReader converter = new InputStreamReader(System.in);
  BufferedReader in = new BufferedReader(converter);
  curLine = in.readLine();

  System.out.println(rev(curLine));
}