Реверсировать строку, не работает

1

Я прокомментировал панель параметров, чтобы получить быстрый обзор вывода. Я не уверен, что я делаю неправильно, и я только начал класс компьютерной науки. Мой вывод такой же, как и вход, но я знаю, что метод обратной строки правильный, потому что я его протестировал.

import javax.swing.JOptionPane;


public class ReverseString
{
  public static void reverse(String n)
  {
    for(int i=0; i<n.length();i++)
    {
      n=n .substring(1, n.length()-i)
      +n.substring(0,1)
      +n.substring(n.length()-i, n.length());
    }
  }

  public static void main (String []arg)
  {
    String n = (JOptionPane.showInputDialog(null,"Input String to reverse"));
    reverse(n);
    System.out.println(n);
   // JOptionPane.showInputDialog(null,"Reversed String is: "+Input);
  }
}
  • 0
    Какая у вас ошибка? Также вам нужно получить доступ к своей функции реверса через имя вашего класса ReverseString.reverse(n);
  • 0
    Это работает нормально!
Показать ещё 6 комментариев
Теги:
string
methods
reverse

1 ответ

1
Лучший ответ
 public static void reverse(String n)

ваш тип возврата void поэтому эта функция ничего не возвращает, поэтому на консоли не будет никакого обращения.

почему вы получаете тот же результат? потому что вы просто распечатываете его по следующей строке

System.out.println(n); <-- you did not pass this n into your function.
                           Even though if you did, nothing would happened because 
                           your reverse return type is void                          

если вы добавите System.out.println(n); после цикла for ваш код работает нормально.

 public static void reverse(String n) {
        for (int i = 0; i < n.length(); i++) {
            n = n.substring(1, n.length() - i)
                    + n.substring(0, 1)
                    + n.substring(n.length() - i, n.length());
        }
        System.out.println(n); <---- print out the reverse result on the console
                                     from the reverse function 
    }

Подробнее о возврате значения из метода

  • 0
    Кроме того, более простым методом обращения строки является new StringBuilder(n).reverse().toString() . Используемый в настоящее время метод загрязняет пул строк (не ожидайте, что новичок узнает об этом, но что-то, что в конечном итоге должны изучить все Java-разработчики)
  • 0
    @ LINEMAN78 Я полностью согласен, но давайте не будем путать опу больше, чем он или она :)
Показать ещё 12 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню