java - 字符串到带有空字符串的集合

标签 java string collections separator stringtokenizer

我有以下字符串:

,Test1,,Test2

并想将其放入这样的集合中:

[],[Test1],[],[Test2]

我的代码

    public static void stringToCollectionEmpty(String separator, String str, Collection col) {

    if (str != null) {
        StringTokenizer tok= new StringTokenizer(str, separator);
        String nextToken;
        while (tok.hasMoreTokens()) {
            nextToken = tok.nextToken();
            if (nextToken != null && nextToken.trim().length() > 0) {
                col.add(nextToken.trim());
            }
        }
    }
}

我只得到

[Test1],[Test2]

但是我想将逗号之前和之间的给定空字符串放入集合中。

最佳答案

使用函数式编程:

public static void main(String[] args) {
    String s = ",Test1,,Test2";

    List<String> collect = Arrays.stream(s.split(","))
            .map(t -> "[" + t + "]")
            .collect(Collectors.toList());

    System.out.println(collect);
}

输出:

[[], [Test1], [], [Test2]]

如果您不需要在 String 周围使用额外的括号,您可以只使用:

List<String> collect = Arrays.asList(s.split(","));

关于java - 字符串到带有空字符串的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58506687/

相关文章:

java - Spring框架中的bean Autowiring

java - Android:runOnUiThread并不总是选择正确的线程?

javascript - 如何从对象中提取内容?

java - 采集API的选择

java - 使用 collect() 而不是 filter() 过滤流

collections - 自定义产品集合上的 Magento 分层导航

java - 使用 Hibernate/JPA 在运行时抛出 AbstractMethodError

java - 具有 Java 配置的 Spring Boot 自定义身份验证提供程序不起作用

java - 如何比较两个字符数组,比较同一年表中的字符,但给出一个代表每个可能符号的额外符号?

java - 使用 Arrays.binarySearch 将字符串与对象进行比较