リストをJava文字列に変換する
この投稿では、Javaでリストを文字列に変換する方法について説明します。ソリューションは、提供されたリストの要素を、指定された区切り文字を使用して単一の文字列に結合する必要があります。ソリューションでは、リストの前後に区切り文字を追加しないでください。
1.使用する StringBuilder
アイデアは、リストをループして、各リスト要素をに連結することです StringBuilder
指定された区切り文字を持つインスタンス。最後に、の文字列表現を返します StringBuilder
。ソリューションは末尾の区切り文字の文字を処理する必要があることに注意してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
import java.util.Arrays; import java.util.List; class Main { public static void main(String[] args) { List<String> list = Arrays.asList("A", "B", "C"); String delim = "-"; StringBuilder sb = new StringBuilder(); int i = 0; while (i < list.size() - 1) { sb.append(list.get(i)); sb.append(delim); i++; } sb.append(list.get(i)); String res = sb.toString(); System.out.println(res); // A-B-C } } |
2.Java8以降を使用する
上記のソリューションは、Java8以降には推奨されません。 Java 8以降では、静的なものを使用できます join() の方法 String
クラス。指定された区切り文字で文字列を結合します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.util.Arrays; import java.util.List; class Main { public static void main(String[] args) { List<String> list = Arrays.asList("A", "B", "C"); String delim = "-"; String res = String.join(delim, list); System.out.println(res); // A-B-C } } |
上記の方法は、文字列のリストに対してのみ機能することに注意してください。リストが文字列タイプでない場合は、以下に示すように、結合コレクターを使用できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3); String delim = "-"; String res = list.stream() .map(Object::toString) .collect(Collectors.joining(delim)); System.out.println(res); // 1-2-3 } } |
これは次と同等です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import java.util.Arrays; import java.util.List; import java.util.StringJoiner; class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3); String delim = "-"; StringJoiner joiner = new StringJoiner(delim); for (Integer integer : list) { joiner.add(integer.toString()); } String res = joiner.toString(); System.out.println(res); // 1-2-3 } } |
3.Guavaを使用する Joiner
Class
以下のような String.join()
方法、Guavaは提供します ジョイナークラス、区切り文字を使用してリストの要素を結合できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import com.google.common.base.Joiner; import java.util.Arrays; import java.util.List; class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3); String delim = "-"; String res = Joiner.on(delim).join(list); System.out.println(res); // 1-2-3 } } |
4. ApacheCommonsLangの使用
最後に、ApacheCommonsLangライブラリを目的に使用することもできます。 StringUtils
クラスは join()
リストと区切り文字を受け取るメソッド。提供されたリストの要素を、提供された要素のリストを含む単一の文字列に結合します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import org.apache.commons.lang3.StringUtils; import java.util.Arrays; import java.util.List; class Main { public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 2, 3); String delim = "-"; String res = StringUtils.join(list, delim); System.out.println(res); // 1-2-3 } } |
これで、リストをJava文字列に変換できます。