我正在尝试编写Java RegEx例程,该例程将返回具有以下要求的arraylist”
这里是输入:
Az ma9n, 66 a pk0 lan, a c55an*()al: Pan3afffma
这里是ArrayList中应有的预期输出:
Az, ma, 9, n, 66, a, pk, 0, lan, a, c, 55, an, al, Pan, 3, afffma
这里是我所拥有的,但是还差得远:
String test = "Az ma9n, 66 a pk0 lan, a c55an*()al: Pan3afffma";
List<String> list = new ArrayList<String>();
test = test.replaceAll("[^a-zA-Z0-9|\\s]", "");
Matcher m = Pattern.compile("[a-z+A-Z+0-9+]").matcher(test);
while(m.find()) {
list.add(m.group());
}
System.out.println(list.toString());
执行以下操作:
如果您不必花费任何费用使用RegEx,则只需将特殊字符替换为空格并使用String.split()
。您仍然需要一种方法来分割包含字符串的数字,或在分割之前在数字序列之前和之后插入空格。
如果您使用的是Java 9或更高版本,则可以使用Matcher#results()
以紧凑的方式编写它: