(我实际上不知道如何编写此代码,我检查了互联网,发现它可能看起来像这样,但是当我运行它时,它没有用。
例如,输入(" 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);
}
答案 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);
}