Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将[a,B,C]这样的字符串拆分为bc(Java)_Java_String_List_Split_Brackets - Fatal编程技术网

如何将[a,B,C]这样的字符串拆分为bc(Java)

如何将[a,B,C]这样的字符串拆分为bc(Java),java,string,list,split,brackets,Java,String,List,Split,Brackets,对于像[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,

对于像[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]

如何拆分此字符串以将其添加到列表中?
I want list=[A,B,C]

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

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);
    }
}

一个简单的解决方案是在逗号上拆分之前替换括号

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);
    }
}

只需省略括号,它比使用更快。replaceAll:

a=a.substring1,a.length-1;//子字符串删除第一个和最后一个字符 字符串[]str=a.split,;
只需省略括号,它比使用更快。replaceAll:

a=a.substring1,a.length-1;//子字符串删除第一个和最后一个字符 字符串[]str=a.split,;
使用正则表达式的解决方案:

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]
}

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

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

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]
}

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

一个简单的方法是删除括号并用逗号分隔。然后可以对数组进行流式处理并输入列表

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

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

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

你能给出一个输出的例子吗?我用一个输出的例子进行了编辑。看起来像。你最初是怎么得到[A,B,C]的?你的目标是什么?若它是对某个列表调用toString方法并尝试将字符串结果转换回列表的结果,那个么您应该改用序列化和反序列化。如果你想以人类可读的形式来做,你可以使用类似JSON的东西,你只需要删除第一个和最后一个括号。所以字符串str[]=a.substring 1,a.length-1.split;是足够且更快的,而不是replaceAll解决方案。您能给出一个输出示例吗?我已经用一个输出示例进行了编辑。看起来像。你最初是怎么得到[A,B,C]的?你的目标是什么?若它是对某个列表调用toString方法并尝试将字符串结果转换回列表的结果,那个么您应该改用序列化和反序列化。如果你想以人类可读的形式来做,你可以使用类似JSON的东西,你只需要删除第一个和最后一个括号。所以字符串str[]=a.substring 1,a.length-1.split;足够且更快,而不是replaceAll解决方案。当输入[Something[Something]]时,您的代码将返回[Something Something],而不是[Something[Something]@DelfikPro-您可以考虑n种可能性。这个答案特别解决了问题中的问题;当输入[Something[Something]]时,您的代码将返回[Something Something],而不是[Something[Something]]@DelfikPro-您可以考虑n种可能性。这个答案特别解决了问题中的问题;