如何将[a,B,C]这样的字符串拆分为bc(Java)
对于像[A,B,C]这样的输入或逗号和括号之间的输入,如何拆分字符串以将其添加到列表中 我有这个:如何将[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,
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种可能性。这个答案特别解决了问题中的问题;