我正在尝试解决这个问题,但无法解决它。请告诉我我做错了什么以及如何解决它的任何提示?谢谢。
问题是这样的:
编写一个方法 stutter
,该方法采用字符串的 ArrayList
和整数 k
作为参数,并用 k 替换每个字符串
该字符串的副本。例如,如果列表在调用方法之前存储值 ["how", "are", "you?"]
并且 k 为 4
,则它应该存储值[“how”、“how”、“how”、“how”、“are”、“are”、“are”、“are”、“you?”、“you?”、“you ?", "you?"]
方法执行完毕后。如果 k 为0 或负数,则调用后列表应为空。
我的代码:
public static void stutter(ArrayList<String> list,int k) {
String s = "";
for(int i = 0; i<list.size(); i++) {
s = list.get(i);
}
for(int j = 0; j < k; j++) {
list.add(j,s);
}
}
最佳答案
嗯......这里有两件事是错误的:
- 您没有返回任何内容,如果您想在不更改/破坏原始数据的情况下取回修改后的列表,这会有点问题。
- 你的循环没有做任何有意义的事情。第一个循环只会为您提供列表中的最后一个元素,然后您只需添加
k
次。绝对不是您想要的。
我不会透露全部内容,因为这对您来说是一个练习,但这里有一些建议:
创建您自己的
ArrayList<String>
返回而不是String
多变的。您还将声明返回ArrayList<String>
的方法。 。也可以初始化它。读取传入列表中的每个单词。将其添加到本地列表
k
次(提示:嵌套循环)。如果没有要读取的单词,则不会触发添加元素的循环。
关于java - java中的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21472947/