我正在尝试编写一个程序来接受全名(即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()返回一些东西,但它从来没有用在递归中? –
我的建议:重新开始,不要依赖任何实例级别的变量。 –