4

私はを持っており、ArrayListそれを1つの文字列に変換する必要があります。

文字列の各値はマークの内側にあり、次のようにコンマで区切られます。

ArrayList list = [a,b,c]

String s = " ’a’,’b’,’c’ ";

私は効率的な解決策を探しています。

4

4 に答える 4

8

次の手順に従うことができます:-

  • 空のStringBuilderインスタンスを作成します

    StringBuilder builder = new StringBuilder();
    
  • あなたのlist

  • 要素ごとに、各要素の表現をStringBuilderインスタンスに追加します

    builder.append("'").append(eachElement).append("', ");
    
  • ここで、最後のコンマが残っているので、それを削除する必要があります。StringBuilder.replace()最後の文字を削除するために使用できます。

のドキュメントを参照して、StringBuilder使用できるさまざまな方法について詳しく知ることができます。

于 2012-10-21T20:26:35.223 に答える
0

StringBuilderとStringBufferを見てください。

StringBuffer

StringBuilder

于 2012-10-21T20:22:34.770 に答える
0

ここでは多分やり過ぎかもしれませんが、Guavaを通じてより機能的なアプローチを提供します:

import com.google.common.base.Function;
import com.google.common.base.Joiner;
import com.google.common.collect.Collections2;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


public class Main {

    public static void main(String ... args){
        List<String> list = new ArrayList(){{add("a");add("b");add("c");}};
        Collection<String> quotedList = Collections2.transform(list,new Function<String, String>() {
            @Override
            public String apply(String s) {
                return "'"+s+"'";
            }
        });
        System.out.println(Joiner.on(",").join(quotedList));
    }
}
于 2012-10-21T20:29:20.420 に答える
0

Apacheorg.apache.commons.lang3.StringUtilsのStringUtilsライブラリを使用します。

    StringUtils.join(list, ", ");

また

String s = (!list.isEmpty())? "'" + StringUtils.join(list , "', '")+ "'":null;
于 2012-10-21T20:48:23.327 に答える