我想写一个递归方法来在字符arraylist中的字符之间添加星号。我也试图避免该方法中的硬编码。这是我的测试代码和所需输出的尝试。我想使用列表迭代器,但我想知道是否有更好的方法?递归添加星号字符
public static String addStars(List<Character> str) {
if (str.isEmpty()) {
return "";
}
else {
char hold = '*';
str.listIterator(1).add(hold);
str.listIterator(3).add(hold);
}
return str.get(0) + addStars(str.subList(2, str.size()));
}
public static void main(String[] args) {
ArrayList<Character> example = new ArrayList<>(Arrays.asList('a', 'b', 'c'));
System.out.println(example); // [a, b, c]
System.out.println(addStars(example)); // a*b*c
System.out.println(example); // [a, *, b, *, c]
}
}
那么究竟是什么问题呢? – Mureinik
我的程序没有输出我想要的内容。我想知道是否有更实际的解决方案。 –
你想修改现有的列表吗?或者返回一个新的列表?一般来说,修改变量是一个危险的操作。 – corsiKa