java - 如何从字符串中获取数字和字母?

标签 java

我正在尝试找出一种在 java 中拆分字符串的方法,该字符串遵循如下模式:

String a = "24ab4h";

结果应该如下:

st[0] = "24";
st[1] = "a";
st[2] = "b";
st[3] = "4";
st[4] = "h";

但是,我完全不知道如何才能实现这一目标。请问有人可以帮我吗?我尝试过在网上搜索类似的问题,但是,在搜索中很难正确地表达它。

最佳答案

如果您使用 split()函数你会失去用作分隔符的元素,所以我认为使用模式更好:

public static void main(String args[]) {

    Matcher m = Pattern.compile("\\d+|[a-zA-Z]").matcher("24ab4h");

    List<String> res = new ArrayList<>();

    while (m.find()) {
        res.add(m.group());
    }     
}

该模式将检测所有数字组或单独的字母字符,然后将所有数字添加到 List 中。 (比 array 更好,因为你不知道尺寸)

<小时/>

如果你真的想在最后有一个数组,有 2 个解决方案 List<String> ->String[] :

  • String[] array = res.toArray(new String[res.size()]);

  • String[] array = res.stream().toArray(String[]::new);

关于java - 如何从字符串中获取数字和字母?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45470274/

相关文章:

java - 为什么 java.util.regex.matcher 不匹配该字符串中的所有实例?

java - 想要并行运行非线程安全库 - 可以使用多个类加载器来完成吗?

java - 在 Java 中获取 'trigrams'

java - 将字符串拆分为字符串数组

java xml 对象的输出,特殊字符未正确转义

java - 以编程方式确定耳机插孔的位置

java junit测试用例不一致

java - R.java 在 Android Studio 中生成不正确

Eclipse 的 Java 存储库与 Maven : Missing artifact:compile

java - 我应该使用哪种模式来根据命令名称运行某些操作?