RECURSIVE方法接受两个参数:String s和int n

时间:2015-09-27 01:41:54

标签: java recursion

(我实际上不知道如何编写此代码,我检查了互联网,发现它可能看起来像这样,但是当我运行它时,它没有用。

例如,输入(" College",2)。它应该输出(" College"," College")。但它显示无法阅读。 我只是不知道如何解决这个问题。 请教我如何编写此代码。

-------编写一个名为printStr的RECURSIVE方法,它接受两个参数:String s和int n。此方法应返回一个String,其中包含写入n次的String,每次用空格分隔。假设n> = 1。

例如,调用printStr(" Lehman",2)应该返回" Lehman Lehman"并且调用printStr(" The Bronx",4)应该返回"布朗克斯布朗克斯布朗克斯布朗克斯"。

打电话给你的班级Homework5_2。在main方法中,多次调用printStr方法来测试它。

import java.util.Scanner;

公共课Homework5_2 {

public static void main(String[] args) {
    Scanner keyboard=new Scanner(System.in);
    int n = 0;
    String s = args[1];

    System.out.print(printStr(s,n));

}

public static String printStr(String s, int n){
    if (n==0) {
        return "";
    }
    return s + printStr(s, n - 1);
    }

4 个答案:

答案 0 :(得分:0)

好的,带上你的作业吧。但如果你自己更努力地做一些事情会更好。

static int maxn;
public static void main(String args[]) {
    Scanner scanner = new Scanner(System.in);
    String s = scanner.next();
    maxn = scanner.nextInt();
    System.out.print(printStr(s, 0));
}
public static String printStr(String s, int n){
    if(n == maxn){
        return "";
    } else if (n != 0){
        s = " " + s;
    }
    return s + printStr(s, n + 1);
}

答案 1 :(得分:0)

不确定你的代码有什么问题...只是没有放置空间..

    public static String printStr(String s, int n) {
    if (n == 1) {
        return s;
    }
    return s + " " + printStr(s, n - 1);
}

答案 2 :(得分:0)

您的代码存在一些问题。在发布时引用作业:

  

"用空格隔开"
  "假设n> = 1"
  "在main方法中,多次调用printStr方法进行测试。"

因此,在main()中编写显式调用,不要使用args。添加缺失的空间,不要致电或检查0

public static void main(String[] args) {
    System.out.println('"' + printStr("College", 2) + '"');
    System.out.println('"' + printStr("Lehman", 2) + '"');
    System.out.println('"' + printStr("The Bronx", 4) + '"');
}
public static String printStr(String s, int n) {
    if (n == 1)
        return s;
    return s + ' ' + printStr(s, n - 1);
}

'"'添加引号(println())以确保没有添加额外的空格。

输出

"College College"
"Lehman Lehman"
"The Bronx The Bronx The Bronx The Bronx"

答案 3 :(得分:0)

添加空格并在字符串的最后添加换行符。

public static String printStr(String s, int n){
    if (n==0) {
        return "\n";
    }
    return s+" " + printStr(s, n - 1);
}