gpt4 book ai didi

Java 正则表达式将连续的单词和数字返回到数组列表中

转载 作者:行者123 更新时间:2023-12-01 14:32:05 24 4
gpt4 key购买 nike

我正在尝试编写一个 Java RegEx 例程,它将返回具有以下要求的数组列表"

  1. 去除特殊字符
  2. 将一个字符串添加到连续字母字符和连续数字字符的数组列表中。
  3. 一个空格或一系列空格是分隔符。

这里是输入:

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

最佳答案

按如下方式进行:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
public static void main(String[] args) {
String test = "Az ma9n, 66 a pk0 lan, a c55an*()al: Pan3afffma";
List<String> list = new ArrayList<String>();

// Pattern to match either sequence of digits or that of letters
Pattern pattern = Pattern.compile("[0-9]+|[A-Za-z]+");

Matcher matcher = pattern.matcher(test);
while (matcher.find()) {
list.add(matcher.group());
}

// Display list
System.out.println(list);
}
}

输出:

[Az, ma, 9, n, 66, a, pk, 0, lan, a, c, 55, an, al, Pan, 3, afffma]

关于Java 正则表达式将连续的单词和数字返回到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62200532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com