我正在嘗試編寫一個程序來接受全名(即first name, middle name and lastname
)並使用RECURSION顯示姓氏以及姓氏。遞歸令人困惑
的Sample-
輸入:蘇巴斯·錢德拉·鮑斯
輸出:SCBose
import java.io.*;
class scbose {
String st, st1;
int d, l;
scbose() {
st = "", st = "";
d = 0, l = 0;
}
String shortname(String str) {
if (l < str.length()) {
if (str.charAt(l) == 32) {
st = st + str.charAt(d) + ".";
d = l + 1;
}
l++;
shortname(str);
}
st = st + str.substring(d);
return st;
}
}
但是當我使用的輸入subhas chandra bose
,輸出是這樣s.c.bosebosebosebosebose
...
什麼這是遞歸程序中的問題嗎?
好的,至少很清楚結果應該是什麼。是你的意圖嗎,我和d不是局部變量?你知道shortname()總是用相同的參數值調用嗎?什麼是st1 for?爲什麼shortname()返回一些東西,但它從來沒有用在遞歸中? –
我的建議:重新開始,不要依賴任何實例級別的變量。 –