Я прокомментировал панель параметров, чтобы получить быстрый обзор вывода. Я не уверен, что я делаю неправильно, и я только начал класс компьютерной науки. Мой вывод такой же, как и вход, но я знаю, что метод обратной строки правильный, потому что я его протестировал.
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);
}
}
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
}
new StringBuilder(n).reverse().toString()
. Используемый в настоящее время метод загрязняет пул строк (не ожидайте, что новичок узнает об этом, но что-то, что в конечном итоге должны изучить все Java-разработчики)
ReverseString.reverse(n);