Когда я запускаю класс тестера, он не может пройти первую букву. Он выводит "!" отметьте вместо того, чтобы продолжать печатать остальную часть слова в обратном порядке. Не могу понять, почему он продолжает зависать. Рекурсивный метод, кажется, застрял и не может продолжаться после первого символа. Вместо того, чтобы печатать «!olleH», я получаю только «!». Спасибо!
/**
Class reverses text of word
*/
public class Sentence
{
private String text="";
/**
Constructs a sentence
@param word
*/
public Sentence(String textIN)
{
text=textIN;
}
/**
gets text
@return text
*/
public String getText()
{
return text;
}
/**
Reverse word
*/
public String reverse()
{
if (text.length() <= 1)
{
return text;
}
else
{
char val = text.charAt(0);
text=text.substring(1);
return reverse() + val;
}
}
}
/**
A tester class for reversing a sentence.
*/
public class SentenceTester
{
public static void main(String[] args)
{
Sentence greeting = new Sentence("Hello!");
greeting.reverse();
System.out.println(greeting.getText());
System.out.println("Expected: !olleH");
}
}