java - 如何在 Java 中将逗号分隔的字符串转换为 ArrayList

标签 java

<分区>

我有一个逗号分隔的字符串,我需要将其转换为 ArrayList 。 我试过这种方式

import java.util.ArrayList;
import java.util.Arrays;

    public class Test {

        public static void main(String[] args) {

            String CommaSeparated = "item1 , item2 , item3";

            ArrayList<String> items = (ArrayList)Arrays.asList(CommaSeparated.split("\\s*,\\s*"));

            for(String str : items)
            {
                System.out.println(str);
            }

        }

    }

它给我如图所示的运行时错误

Exception in thread "main" java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
    at com.tradeking.at.process.streamer.Test.main(Test.java:14)

因为我试图强制将 List 转换为 arrayList。

最佳答案

Arrays.asList 返回的ArrayList 不是java.util.ArrayList。它是 java.util.Arrays.ArrayList。所以你不能将它转换为 java.util.ArrayList

您需要将列表传递给 java.util.ArrayList 类的构造函数:

List<String> items = new ArrayList<String>(Arrays.asList(CommaSeparated.split("\\s*,\\s*")));

或者,您可以简单地分配结果:

List<String> items = Arrays.asList(CommaSeparated.split("\\s*,\\s*"));

但是请注意,Arrays.asList 返回一个固定大小的列表。您不能在其中添加或删除任何内容。如果你想添加或删除一些东西,你应该使用第一个版本。

P.S:您应该使用 List 作为引用类型,而不是 ArrayList

关于java - 如何在 Java 中将逗号分隔的字符串转换为 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104278/

相关文章:

java - 在 Java SDK 中排序 BigQuery 结果

java.io.IOException : Connection reset by peer' when using AsyncRestTemplate on weblogic server

java - Orika 嵌套属性扁平化

java - 如何在 Java 中发送 HTTP 请求?

java - Hibernate:跨多个表的@UniqueConstraint?

java - Java 中的偶数

java - ListView setItems 不更新列表

java - 在第二个 Activity 中删除记录后 ListView 未更新

java - Spring Integration - 健全性检查的最佳实践

java - 在 Django 中执行 java 应用程序 (.jar)