我正在尝试找出一种在 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/