Как мне закончить обратную строку? - PullRequest
2 голосов
/ 17 октября 2010

Итак, мой учитель сказал мне сделать строку, которая заставляет все, что я набираю, идти в обратном порядке (например, «привет там» становится «эрех оллех»).До сих пор я работал над телом и придумал это

   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 ]

6 голосов
/ 17 октября 2010
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.

3 голосов
/ 17 октября 2010

Несколько вещей:

Поскольку вы добавляете символы в обратном порядке к строке reversed, это должна быть пустая строка для начала:

String reversed = "";

Чтобы вызвать этот метод изmain передайте ей строку, которую нужно обратить вспять.Что-то вроде:

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

В качестве альтернативы вы можете прочитать строку, которую нужно изменить, как ввод от пользователя, а затем передать ее в функцию rev.

2 голосов
/ 17 октября 2010

Пытаясь сделать это как можно более непрозрачным, учитывая тег домашней работы, вы должны, как минимум, пересмотреть исходное значение reversed. Как у вас есть, вы получите что-то, кроме желаемого "ereht olleh".

Что касается вашего конкретного вопроса о том, как получить аргументы из командной строки, следующий текст выводит все аргументы и послужит хорошей основой для вашего собственного кода:

public static void main (String[] args) {
    for (int i = 0; i < args.length; i++)
        System.out.println (args[i]);
    }
}
0 голосов
/ 17 октября 2010

Чтение консольного ввода:

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));
}
...