文字列 "Hello" があるとします。この文字列は左から右に再帰を実行します。
char c = s.charAt(0);
return reverseString(s.substring(1)) + c;
1) H の場合
c = 'H'
return reverseString("ELLO") + H
2) Eの場合
c = 'E'
return reverseString("LLO") + E
3) E の場合
c = 'E'
return reverseString("LLO") + E
4)Lの場合
c = 'L'
return reverseString("LO") + L
5)Lの場合
c = 'L'
return reverseString("O") + L
6) 以来、部分文字列 s<= 1
return S = 'O'
7) 再帰関数を下から上に再開し、各レベルですべての文字列を連結します
だから、O + L + L + E + H = "OLLEH"
ところで、Java では、文字列の反転は StringBuilder/StringBuffer を使用したケーキウォークです。例: StringBuffer("Hello".toReverse()).toString();
シングルスレッドのシンプルなアプリケーションを使用している場合は、StringBuilder を使用してください。
同時実行の複雑なアプリケーションは、その Synchrinized である StringBuffer を使用します。
それが役に立てば幸い。