The below code works just fine, it reverses a string.But, I do not understand how it works. I think it should return an empty string since each time we are calling reversedString(sub);
it takes out the character at index 0, so we should end up with an empty string at the end.
import components.simplewriter.SimpleWriter;
import components.simplewriter.SimpleWriter1L;
public final class HelloWorld {
private static String reversedString(String s) {
if (s.length() == 0) {
return s;
} else {
String sub = s.substring(1);
String revSub = reversedString(sub);
String result = revSub + s.charAt(0);
return result;
}
}
public static void main(String[] args) {
SimpleWriter out = new SimpleWriter1L();
out.println(reversedString("Banana"));
out.close();
}
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…