Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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中使用模式匹配器拆分为ArrayList_Java - Fatal编程技术网

在Java中使用模式匹配器拆分为ArrayList

在Java中使用模式匹配器拆分为ArrayList,java,Java,输出: String s = "A..?-B^&';(,,,)G56.6C,,,M4788C..,,A1''"; String[] result = s.split("(?=[ABC])"); System.out.println(Arrays.toString(result)); 请参考上述案例中的拆分。我正在尝试基于A、B或C分离字符串。如何使用模式匹配器将相同的分离字符串放入ArrayList?我不知道如何在下面的代码中分组 [A..?-, B^&';(,,,)G56.

输出:

String s = "A..?-B^&';(,,,)G56.6C,,,M4788C..,,A1''";
String[] result = s.split("(?=[ABC])");
System.out.println(Arrays.toString(result));
请参考上述案例中的拆分。我正在尝试基于
A、B或
C分离字符串。如何使用
模式匹配器将相同的分离字符串放入
ArrayList
?我不知道如何在下面的代码中分组

 [A..?-, B^&';(,,,)G56.6, C,,,M4788, C..,,, A1'']
Pattern p=Pattern.compile((?=[ABC]);
匹配器m=匹配器p;
列表匹配项=新的ArrayList();
while(m.find()){
匹配。添加(m.group());
}
另外,假设在第一次出现
A、B或C
之前我有几个字符,并且我想与
ArrayList
中的第一个元素组合,,A. 谢谢你的帮助

Pattern p = Pattern.compile("(?=[ABC])");
Matcher m = p.matcher(s);
List<String> matches = new ArrayList<>();
while (m.find()) {
   matches.add(m.group());
}
如果我没有使用您提供的代码处理任何edge案例

对于额外的问题,您可以将
(^[^ABC]*)*
添加到beggining,但这会使其速度变慢,可读性变差,更不用说它只适用于检查单行字符串。我建议只手动解析Begging字符,将其视为特例

如果我没有使用您提供的代码处理任何edge案例


对于额外的问题,您可以将
(^[^ABC]*)*
添加到beggining,但这会使其速度变慢,可读性变差,更不用说它只适用于检查单行字符串。我建议只手动解析Begging字符,将其视为特例。

为什么不使用第一个解决方案?不能使用
String[]result=Pattern.compile((?=[ABC])”).split(s,0)?为什么不使用第一个解决方案?不能使用
String[]result=Pattern.compile((?=[ABC])).split(s,0)?你的答案比我的好得多+1和删除。你的答案比我的好得多+1及删去。
[ABC][^ABC]*