0

ファイルを1行ずつ読み取るコードのこの部分があります。編集しようとしているこの元の行は次のとおりです: j(ac) "test" /Aaa,Bbb/

要素 [Ccc,Ddd,Eee] を含む配列リストがあり、これらの要素を / と / の間の上記の行で置き換えたいと考えています。/ と / の間の置換は正常に機能します。ただし、arraylist を .replace 原因 [] に直接配置することはできません [] も表示されます。だから私はリストの要素を追加しようとしています。ただし、次のような望ましい結果を得ることができません: j(ac) "test" /Ccc,Ddd,Eee/

最初の要素のみを取得し続けます: j(ac) "test" /Ccc/

どうすればこれを修正できますか?

List<String> strlist = new ArrayList<String>() ;

Scanner scanner = new Scanner(file);

 while (scanner.hasNextLine()) {
               String line = scanner.nextLine();

               if (line.contains("j(ac)")) {   

                   String skat ;
                   skat = null ;

                   for(String s : strlist) {
                   for (int index = 0; index < strlist.size(); index++) {

                               s = strlist.get(index);
                       skat=s;
                   }
                   }
                  String next = line.replaceAll("/.*?/", "/"+skat+"/");

                   System.out.print(next);


               }
4

2 に答える 2

2

あなたはとても近くにいます。

変えればいいだけ、

skat=s;skat = skat + "," + s;

このようにして、リストに追加し、コンマを追加し、反復ごとに skat をリセットしません。

于 2013-09-17T20:33:55.297 に答える
0

skat=s がある場合、skat+=s である必要があるため、ループの反復ごとに新しい文字列に置き換えるのではなく、skat に追加します。

于 2013-09-17T20:31:06.577 に答える