用Java编写一个代码,实现输入一个字符串,提取字符串中所有的数值并返回数值列表,多个连在一起的数字可视为一个数值
时间: 2024-02-09 21:10:46 浏览: 74
好的,下面是Java代码实现:
```java
import java.util.ArrayList;
import java.util.List;
public class NumberExtractor {
public static List<Integer> extractNumbers(String str) {
List<Integer> numbers = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {
sb.append(c);
} else if (sb.length() > 0) {
numbers.add(Integer.parseInt(sb.toString()));
sb.setLength(0);
}
}
if (sb.length() > 0) {
numbers.add(Integer.parseInt(sb.toString()));
}
return numbers;
}
public static void main(String[] args) {
String str = "abc123def456ghi789jkl";
List<Integer> numbers = extractNumbers(str);
System.out.println(numbers);
}
}
```
这个代码使用了一个字符串构建器 `StringBuilder` 来逐个遍历字符串中的字符。如果当前字符是数字,就把它加入到字符串构建器中;否则,如果构建器中已经有数字了,就把这个数字解析成整数并添加到数值列表中。最后,如果构建器中还有数字没有处理,就把它解析成整数并添加到数值列表中。
阅读全文