如何将[a,b,c]这样的字符串拆分为bc(java)呢

vkc1a9a2  于 2021-06-29  发布在  Java
关注(0)|答案(4)|浏览(308)

对于像这样的输入 [A,B,C] 或者逗号和方括号之间的内容,如何拆分字符串以将其添加到列表中?
我有这个:

List<String> list = new ArrayList<String>();
String a = "[A,B,C]";
String str[] = a.split(",|\\[|\\]");
list = Arrays.asList(str);
System.out.println(list);

但结果是: [, A, B, C] 如何拆分此字符串以将其添加到列表中?我要列表= [A,B,C]

s71maibg

s71maibg1#

省略括号,比用 .replaceAll :

a = a.substring(1, a.length() - 1); // Substringing removes first and last character
String[] str = a.split(",");
xkrw2x1b

xkrw2x1b2#

一个简单的方法就是去掉括号,用逗号分开。然后可以流式处理数组并输入列表。

String s = "[AAAA,   BBBB ,  CCCCC,DDDDDD]";
List<String> list =
        Arrays.stream(s.replaceAll("[\\[\\]]","").split("\\s*,\\s*"))
                .collect(Collectors.toList());
list.forEach(System.out::println);

印刷品

AAAA
BBBB
CCCCC
DDDDDD
sqyvllje

sqyvllje3#

使用正则表达式的解决方案:

public static void main(String[] args) {

    List<String> list = new ArrayList<String>();
    String a = "[A,B,C]";

    Pattern p = Pattern.compile("\\w+");
    Matcher m = p.matcher(a);
    while(m.find()) {
        list.add(m.group());
    }

    System.out.println(list); //[A,B,C]
}

匹配输入字符串中的所有字母,并将它们逐个添加到列表中。

siv3szwd

siv3szwd4#

一个简单的解决方案是在用逗号分隔之前替换括号。

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

public class Main {
    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        String a = "[A,B,C]";
        String str[] = a.replaceAll("[\\[\\]]", "").split(",");
        list = Arrays.asList(str);
        System.out.println(list);
    }
}

输出:

[A, B, C]

相关问题