Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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
在java中将列表字符串转换为字符串列表_Java - Fatal编程技术网

在java中将列表字符串转换为字符串列表

在java中将列表字符串转换为字符串列表,java,Java,我得到的值是字符串格式的字符串列表,如下所示:“[“a”,“b”]”。我想将它们转换为字符串列表。我可以通过去掉前后大括号,然后在逗号上拆分来实现这一点。但这里的问题是,我可能会收到与单个字符串相同的值,也就是我想要转换为字符串列表的“a”。那么有什么方法可以概括这一点。一个可能的解决方案是使用Regex 您的表达式可以如下所示:“(.+?)” +?匹配任何字符(行终止符除外) +?量词-在一次和无限次之间进行匹配,匹配次数尽可能少,并根据需要进行扩展 String标记=“[\'a\',\'b

我得到的值是字符串格式的字符串列表,如下所示:“[“a”,“b”]”。我想将它们转换为字符串列表。我可以通过去掉前后大括号,然后在逗号上拆分来实现这一点。但这里的问题是,我可能会收到与单个字符串相同的值,也就是我想要转换为字符串列表的“a”。那么有什么方法可以概括这一点。

一个可能的解决方案是使用
Regex

您的表达式可以如下所示:
“(.+?)”

+?
匹配任何字符(行终止符除外)

+?
量词-在一次和无限次之间进行匹配,匹配次数尽可能少,并根据需要进行扩展


String标记=“[\'a\',\'b,c\',\'test\'”;
字符串模式=“\”(.+?)\”;
Pattern p=Pattern.compile(Pattern);
匹配器m=p.Matcher(令牌);
List tokenList=new ArrayList();
while(m.find()){
tokenList.add(m.group());
}
System.out.println(令牌列表);

您可以概括以下内容:
String str=“\”[\“a\”,\“b\”]\”;
字符串[]splitStrs=str.split(“\”,7);
System.out.println(splitStrs[0]+“”+splitStrs[1]+“”+splitStrs[2]+“”+splitStrs[3]+“”+splitStrs[4]+“”+splitStrs[5]+“”+splitStrs[6]);
我的输出

[甲,乙]


拆分不带分隔符的字符串不是问题。该策略的一个更大问题是分隔符出现在引号之间。听起来像是在问如何解析JSON数组。尝试打断每个元素,并将每个元素添加到
集合中,这样您将得到唯一的值。如果我正确理解了您的问题,您为什么不继续t双引号内的字符串,并添加到列表或集合中。它可能是JSONArray,也可能是JSONString。我一直想知道是否有任何方法可以概括。拆分字符串而不使用分隔符不是问题。该策略的一个更大问题是分隔符出现在引号之间。
String tokens = "[\"a\", \"b,c\", \"test\"]";
String pattern = "\"(.+?)\"";

Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(tokens);

List<String> tokenList = new ArrayList<String>();
while (m.find()) {
    tokenList.add(m.group());
}

System.out.println(tokenList);