HOWTO · Java
如何在 Java 中將 ArrayList 轉換為字串
了解如何在 Java 中使用所選分隔符或括號表示法將 ArrayList 轉換為字串。
本頁內容
若要將 ArrayList 轉換為 String,請選擇您需要的是以分隔符連接的每個元素一個值,還是用於顯示的括號表示法。對於以分隔符連接的文字,String.join() 是一個直接的選擇;當您需要自訂迴圈時,StringBuilder 很有用。以下範例使用 Apple、Orange 和 Mango 作為清單的值。
在 Java 中使用 + 運算子將 ArrayList 轉換為 String
+ 運算子會串連字串。對於簡短且固定的清單,您可以直接串連其值,並在它們之間放置分隔符。在迴圈內重複串連會建立中間字串,因此對於較大的清單請使用 StringBuilder。
import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
String joined = fruits.get(0) + "," + fruits.get(1) + "," + fruits.get(2);
System.out.println(joined);
}
}
在 Java 中使用 append() 方法將 ArrayList 轉換為 String
使用 StringBuilder.append() 在迴圈中建立結果。在除第一個值以外的每個值之前加入分隔符;這樣可以避免在結尾留下多餘的分隔符。呼叫 toString() 會傳回完成的 String。
import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
StringBuilder result = new StringBuilder();
for (String fruit : fruits) {
if (result.length() > 0) {
result.append(", ");
}
result.append(fruit);
}
String joined = result.toString();
System.out.println(joined);
}
}
在 Java 中使用 join() 方法將 ArrayList 轉換為 String
String.join() 使用您提供的分隔符來合併元素。分隔符會出現在相鄰值之間,不會加在第一個值之前或最後一個值之後。此處介紹此 API 時不指定 Java 的最低版本。
import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
String joined = String.join(", ", fruits);
System.out.println(joined);
}
}
在 Java 中使用 StringUtils 類別將 ArrayList 轉換為 String
如果您的專案已經使用 Apache Commons Lang,StringUtils.join(fruits, ", ") 會以提供的分隔符連接這些值。此選項需要在專案的 classpath 中加入 Commons Lang 依賴;它不是 Java 標準函式庫的一部分。如需進一步了解該函式庫,請參閱 StringUtils 類別指南。
在 Java 中使用 replaceAll() 方法將 ArrayList 轉換為 String
您可以使用 replaceAll() 從 List.toString() 中移除括號和分隔符間距,但這是一種格式化的捷徑。它依賴清單的顯示表示法,因此包含逗號或括號的值可能會使結果變得含糊。此範例僅移除方括號;它會保留 List.toString() 中逗號加空格的分隔符不變。
import java.util.ArrayList;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
String joined = fruits.toString().replaceAll("\\[|\\]", "");
System.out.println(joined);
}
}
在 Java 中使用 joining() 方法將 ArrayList 轉換為 String
對於以串流為基礎的方法,請對清單呼叫 stream(),並使用 Collectors.joining() 收集其元素。分隔符會插入值之間。此處介紹此 API 時不對 Java 最低版本作出主張。
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class SimpleTesting {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
String joined = fruits.stream().collect(Collectors.joining(", "));
System.out.println(joined);
}
}
在 Java 中使用 deepToString() 方法將 ArrayList 轉換為 String
Arrays.deepToString() 會建立一個以括號表示的陣列風格表示法,適用於顯示和巢狀陣列值。它不會建立以分隔符連接的純文字字串。在將清單傳遞給該方法之前,請先將其轉換為陣列。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SimpleTesting {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Orange");
fruits.add("Mango");
String representation = Arrays.deepToString(fruits.toArray());
System.out.println(representation);
}
}