文字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