java 将一个带有数字的字符串拆分成数字和数字后的字符串
时间: 2024-05-08 12:21:42 浏览: 112
你可以使用正则表达式来拆分数字和非数字部分。
例如:
```java
String input = "abc123def456";
String[] parts = input.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
for (String part : parts) {
if (part.matches("\\d+")) {
// part is a number
int number = Integer.parseInt(part);
System.out.println("Number: " + number);
} else {
// part is a non-number string
System.out.println("String: " + part);
}
}
```
在这个例子中,我们使用正则表达式 `(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)` 来拆分数字和非数字部分。这个正则表达式的意思是:
- `(?<=\\D)(?=\\d)`:匹配一个非数字字符的后面紧跟着一个数字字符。
- `|`:或者。
- `(?<=\\d)(?=\\D)`:匹配一个数字字符的后面紧跟着一个非数字字符。
因此,`split` 方法将字符串拆分成一个数组,其中每个元素都是数字或非数字字符串。接下来,我们使用 `matches` 方法来检查每个元素是否是数字字符串。如果是数字字符串,则使用 `parseInt` 方法将其转换为整数。否则,我们只是打印出字符串。
阅读全文