这是一个问题:
编写一个接受String和整数拉伸的Java程序 因子P作为参数,用k个副本替换每个元素 那个元素。例如,如果名为list的变量存储 元素[hi,how,are,you?],然后是stretch的调用(list,3);它 会存储[hi,hi,hi,how,how,how,are,是,是吗?,你?,你?)。如果 传递拉伸因子为0或更小,列表为空。在 在这种情况下,打印“EMPTY”您可以假设输入列表永远不会 是空的。样品输入:3你好,你好吗?样品输出:嗨嗨怎么样 你怎么样?您?你呢?
这是我的代码:
class stretchF{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int b=sc.nextInt();
String s=sc.nextLine();
String[] splited=s.split("\\s");
if(b<1){
System.out.print("EMPTY");
}else{
for(int i=0;i<splited.length;i++){
for(int j=0;j<b;j++){
System.out.print(splited[i]+" ");
}
}
}
}
}
现在我已经编辑了代码
但仍然没有通过输出测试用例!
但它没有给出正确的输出!
请告诉我应该做些什么改变才能完成这项工作?
答案 0 :(得分:0)
尝试更改您的代码:
for(int i=0;i<=b;i++){
for(int j=0;j<b;j++){
System.out.print(splited[i]+" ");
}
}
成:
for(int i=0;i<splited.length;i++){
for(int j=0;j<b;j++){
System.out.print(splited[i]+" ");
}
}
您希望外部for循环遍历每个元素,但您没有给出正确的范围。 (splited.length)
另外,您需要检查b
案例的print "EMPTY"
值。
用下面的代码替换扫描仪代码。
Scanner sc = new Scanner(System.in);
System.out.println("String is:");
String s = sc.nextLine();
System.out.println("Number is:");
int b = sc.nextInt();