递归方法打印字符串并向下计数1并删除每个递归1个字母

时间:2014-02-08 09:16:33

标签: java string recursion methods command-line

我正在处理一个递归方法,该方法将返回并在我的main方法中打印一个字符串,该字符串将向下计数为N.为字符串的每个递归删除一个字母。直到N变为1或直到字符串有1个字母。 (N是命令行上的int)

例如,如果我的命令行aruments 是:5 valentine

它也应输出:

  

5情人节,4意大利,3 lentine,2 entine,1 ntine,

到目前为止,我设法倒计数命令行参数上输入的数字。我只是不知道如何删除字符串中的一个字母? :○

到目前为止我的代码:

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);
      }
   }

1 个答案:

答案 0 :(得分:3)

您可以阅读subString()文档,了解如何获取字符串的部分内容。

  1. 更改方法定义以包含word
  2. word添加到您的return语句中:return number + " " + word +...
  3. 1st索引
  4. 调用原始单词的子字符串
  5. 检查<=0而不是<0
  6. 代码:

    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,