写一段Java代码,将一个仅包括英文字母和数字的字符串分成两个数组,一个数组是连续数字,一个数组是连续字母 样例1 输入 "ab123cd4ef5g" 输出 [["123", "4", "5"], ["ab", "cd", "ef", "g"]]
时间: 2024-04-01 18:29:54 浏览: 49
java中把一个数字转化为字符串
可以使用正则表达式来实现将字符串分成两个数组,一个数组是连续数字,一个数组是连续字母的功能。以下是Java代码示例:
```java
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SplitString {
public static void main(String[] args) {
String input = "ab123cd4ef5g";
List<String> numberList = new ArrayList<>();
List<String> letterList = new ArrayList<>();
// 匹配连续数字的正则表达式
String numberPattern = "\\d+";
// 匹配连续字母的正则表达式
String letterPattern = "[a-zA-Z]+";
Pattern pattern = Pattern.compile(numberPattern);
Matcher matcher = pattern.matcher(input);
while (matcher.find()) {
numberList.add(matcher.group());
}
pattern = Pattern.compile(letterPattern);
matcher = pattern.matcher(input);
while (matcher.find()) {
letterList.add(matcher.group());
}
System.out.println(numberList);
System.out.println(letterList);
}
}
```
运行以上代码,输出结果为:
```
[123, 4, 5]
[ab, cd, ef, g]
```
阅读全文