私はを持っており、ArrayList
それを1つの文字列に変換する必要があります。
文字列の各値はマークの内側にあり、次のようにコンマで区切られます。
ArrayList list = [a,b,c]
String s = " ’a’,’b’,’c’ ";
私は効率的な解決策を探しています。
次の手順に従うことができます:-
空のStringBuilder
インスタンスを作成します
StringBuilder builder = new StringBuilder();
あなたのlist
要素ごとに、各要素の表現をStringBuilderインスタンスに追加します
builder.append("'").append(eachElement).append("', ");
ここで、最後のコンマが残っているので、それを削除する必要があります。StringBuilder.replace()
最後の文字を削除するために使用できます。
のドキュメントを参照して、StringBuilder
使用できるさまざまな方法について詳しく知ることができます。
ここでは多分やり過ぎかもしれませんが、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));
}
}
Apacheorg.apache.commons.lang3.StringUtilsのStringUtilsライブラリを使用します。
StringUtils.join(list, ", ");
また
String s = (!list.isEmpty())? "'" + StringUtils.join(list , "', '")+ "'":null;