179
List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");

ここで、明示的に反復せずに、このリストからの出力を 1,2,3,4 として取得したいと考えています。

4

13 に答える 13

486

Android の場合:

android.text.TextUtils.join(",", ids);
于 2014-05-25T09:59:08.287 に答える
161

Java 8 の場合:

String csv = String.join(",", ids);

Java 7-には、汚い方法があります(注:リストに含まれる文字列を挿入しない場合にのみ機能", "します)-明らかに、List#toStringループを実行して作成しますidListが、コードには表示されません:

List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");
String idList = ids.toString();
String csv = idList.substring(1, idList.length() - 1).replace(", ", ",");
于 2012-06-01T13:05:35.487 に答える
104
import com.google.common.base.Joiner;

Joiner.on(",").join(ids);

またはStringUtilsを使用できます。

   public static String join(Object[] array,
                              char separator)

   public static String join(Iterable<?> iterator,
                              char separator)

指定された配列/イテラブルの要素を、指定された要素のリストを含む単一の文字列に結合します。

http://commons.apache.org/proper/commons-lang/javadocs/api-3.3.2/org/apache/commons/lang3/StringUtils.html

于 2012-06-01T12:59:37.413 に答える
64

リストをCSV形式に変換したい場合…………

List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");

// CSV format
String csv = ids.toString().replace("[", "").replace("]", "")
            .replace(", ", ",");

// CSV format surrounded by single quote 
// Useful for SQL IN QUERY

String csvWithQuote = ids.toString().replace("[", "'").replace("]", "'")
            .replace(", ", "','");
于 2012-10-30T14:15:42.353 に答える
55

一番早い方法は

StringUtils.join(ids, ",");
于 2013-11-14T22:09:47.160 に答える
26

以下:

String joinedString = ids.toString()

コンマ区切りのリストが表示されます。詳細については、ドキュメントを参照してください

角かっこを削除するには、後処理を行う必要がありますが、特に難しいことはありません。

于 2012-06-01T13:04:10.230 に答える
17

ワンライナー (ピュア Java )

list.toString().replace(", ", ",").replaceAll("[\\[.\\]]", "");
于 2014-04-17T04:26:45.550 に答える
13

ArrayListのJoin / concat & Split関数:

arraylistのすべての要素をカンマ(" , ")で結合 /concatして文字列にします。

List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");
String allIds = TextUtils.join(",", ids);
Log.i("Result", allIds);

String のすべての要素をコンマ(" , ")で arraylist に分割ます。

String allIds = "1,2,3,4";
String[] allIdsArray = TextUtils.split(allIds, ",");
ArrayList<String> idsList = new ArrayList<String>(Arrays.asList(allIdsArray));
for(String element : idsList){
    Log.i("Result", element);
}

終わり

于 2015-03-13T10:29:41.940 に答える
10

文字列の ArrayList を持っています。これをスペースなしでコンマ区切りのリストに変換する必要があります。ArrayList toString() メソッドは、角かっこ、コンマ、およびスペースを追加します。以下のように正規表現の方法を試しました。

List<String> myProductList = new ArrayList<String>();
myProductList.add("sanjay");
myProductList.add("sameer");
myProductList.add("anand");
Log.d("TEST1", myProductList.toString());     // "[sanjay, sameer, anand]"
String patternString = myProductList.toString().replaceAll("[\\s\\[\\]]", "");
Log.d("TEST", patternString);                 // "sanjay,sameer,anand"

より効率的なロジックについてコメントしてください。( コードは Android / Java 用です )

ありがとう。

于 2013-10-14T06:58:21.157 に答える
3

Eclipse コレクション(以前の GS コレクション) を使用している場合は、このメソッドを使用できますmakeString()

List<String> ids = new ArrayList<String>();
ids.add("1");
ids.add("2");
ids.add("3");
ids.add("4");

Assert.assertEquals("1,2,3,4", ListAdapter.adapt(ids).makeString(","));

に変換できる場合ArrayListFastList、アダプターを取り除くことができます。

Assert.assertEquals("1,2,3,4", FastList.newListWith(1, 2, 3, 4).makeString(","));

注:私は Eclipse コレクションのコミッターです。

于 2013-08-29T10:29:47.483 に答える