実現したいこと
引数のListからtargetパラメータで指定された文字列を検索し、その直後にtoInsertパラメータで指定された文字列を挿入する関数insertAfter()を完成させたい。
実装内容
この関数は、引数として文字列のList List<String> input,ターゲットとなる文字列 String target, 挿入する指定文字列 String toInsert を受け取ります。 引数のListからtargetパラメータで指定された文字列を検索し、その直後にtoInsertパラメータで指定された文字列を挿入します。 targetで指定された文字列が見つからなかった場合は要素の追加はせずに元のListを返します。 この関数では入力のListインスタンスそのものに要素の追加を行います。
このような設定になっています。
期待する結果は:
["bravo", "alpha", "charlie"," delta", "charlie"]
発生している問題・分からないこと
コードを実行すると以下のエラーになります。
javac Main.java
java Main
Main.java:30: エラー: 不適合な型: String[]をStringに変換できません:
insertAfter(list,target,toInsert);
^
Main.java:32: エラー: 不適合な型: String[]をStringに変換できません:
System.out.println(insertAfter(list,target,toInsert));
^
ノート: 一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして完全な出力を取得してください
エラー2個
[Done] exited with code=1 in 1.489 seconds
該当のソースコード
Main.java
1import java.util.*; 2import java.util.stream.Collectors; 3 4 5public class Main{ 6 7 public static List<String> insertAfter(List<String> input, String target, String toInsert) { 8 // `target`の示す文字列の直後に`toInsert`を挿入する 9 // `target`が見つからない場合は、値の挿入は行わない 10 int i; 11 i = input.indexOf(target); 12 if (-1 == i){ 13 return input; 14 } else { 15 input.add(i + 1, toInsert); 16 return input; 17 } 18 } 19 20 21 public static void main(String[] args){ 22 23 // List<データ型名> オブジェクト名 = new ArrayList<データ型名>(); 24 List<String> list = new ArrayList<>(Arrays.asList("bravo", "alpha", "charlie")); 25 26 String target = "alpha"; 27 28 String[] toInsert = {"alpha","delta"}; 29 30 insertAfter(list,target,toInsert); 31 32 System.out.println(insertAfter(list,target,toInsert)); 33 System.out.println(list); 34 35 } 36}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
コードを実行すると以下のエラーになります。
javac Main.java
java Main
Main.java:30: エラー: 不適合な型: String[]をStringに変換できません:
insertAfter(list,target,toInsert);
^
Main.java:32: エラー: 不適合な型: String[]をStringに変換できません:
System.out.println(insertAfter(list,target,toInsert));
^
ノート: 一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして完全な出力を取得してください
エラー2個
[Done] exited with code=1 in 1.489 seconds
補足
CODEPREP,Java演習List編https://codeprep.jp/books/110/chapters/2/sections/4
で勉強させていただいています。
コードinsertAfter(){}は検索して完成したのですが、
main()がありませんので自分なりに作成したのですが、
ここで詰まっています。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/08/21 11:53
2024/08/21 19:38