Java 递归方法打印字符串并按1倒计时,每次递归删除1个字母
我正在研究一个递归方法,它将返回并在我的主方法中打印一个字符串,该字符串将按1倒计时N。为该字符串的每个递归删除一个字母。直到N变为1或字符串有1个字母。(N是命令行上的int) 例如,如果我的命令行是:5 它还应该输出: 5瓦伦丁,4阿伦汀,3扁豆素,2恩汀,1恩汀 到目前为止,我设法倒计时输入到命令行参数上的数字。我只是不知道如何从字符串中删除一个字母:o 到目前为止,我的代码是:Java 递归方法打印字符串并按1倒计时,每次递归删除1个字母,java,string,recursion,methods,command-line,Java,String,Recursion,Methods,Command Line,我正在研究一个递归方法,它将返回并在我的主方法中打印一个字符串,该字符串将按1倒计时N。为该字符串的每个递归删除一个字母。直到N变为1或字符串有1个字母。(N是命令行上的int) 例如,如果我的命令行是:5 它还应该输出: 5瓦伦丁,4阿伦汀,3扁豆素,2恩汀,1恩汀 到目前为止,我设法倒计时输入到命令行参数上的数字。我只是不知道如何从字符串中删除一个字母:o 到目前为止,我的代码是: public static void main(String[] args){ int numbe
public static void main(String[] args){
int number = Integer.parseInt(args[0]);
String word = new String("");
word = args[1];
String method = recursive.method1(number);
System.out.println(method);
}
public static String method1(int number){
if (number < 0){
return "";
}
else{
return number + ", " + method1(number - 1);
}
}
publicstaticvoidmain(字符串[]args){
int number=Integer.parseInt(args[0]);
字符串字=新字符串(“”);
word=args[1];
String method=recursive.method1(数字);
系统输出打印LN(方法);
}
公共静态字符串方法1(整数){
如果(数字<0){
返回“”;
}
否则{
返回编号+“,”+method1(编号-1);
}
}
您可以通读文档,了解如何获取字符串的各个部分
单词
word
添加到您的return
语句中:returnnumber+“”+word+…
1st
索引调用原始单词的子字符串是否希望将字符串传递给递归方法。并在String
类的文档中查找substring
。嗨,PopoFibo,不幸的是,我在使用Int:10和String:10的代码示例时出错了?StringIndexOutOfBOundsException:字符串索引超出范围:-1。是否有此错误的修复方法?@Asiax3您的字符串长度需要等于您正在传递的数字,对于“十”,您将在三次传递中用完整个字符串,并且在第四次传递时,它的子字符串()尝试查找第四个索引,该索引不在此处:(,当数字变为1或字符串只有一个字母时,您能告诉我递归方法停止的方法吗?@Asiax3更改您的if(数字
public static void main(String[] args){
int number = 5;
String word = new String("");
word = "Valentine";
String method = Recurcive.method1(number, word);
System.out.println(method);
}
public static String method1(int number, String word){
if (number <= 0){
return "";
}
else{
return number + " " + word + ", " + method1(number - 1, word.substring(1));
}
}
5 Valentine, 4 alentine, 3 lentine, 2 entine, 1 ntine,