用Java4.编写一个方法getNums(),传入一个字符串,提取字符串中所有的数值并返回数值列表,多个连在一起的数字可视为一个数值
时间: 2024-02-13 11:05:06 浏览: 139
好的,以下是Java版本的提取字符串中所有数值的方法getNums()的代码:
```java
public static List<Integer> getNums(String str) {
/*
提取字符串中所有数值并返回数值列表,多个连在一起的数字可视为一个数值
:param str: 待处理的字符串
:return: 数值列表
*/
List<Integer> nums = new ArrayList<>();
int numStart = -1;
int numEnd = -1;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= '0' && c <= '9') {
if (numStart == -1) {
numStart = i;
}
numEnd = i;
} else {
if (numStart != -1) {
int num = Integer.parseInt(str.substring(numStart, numEnd + 1));
nums.add(num);
numStart = -1;
numEnd = -1;
}
}
}
if (numStart != -1) {
int num = Integer.parseInt(str.substring(numStart, numEnd + 1));
nums.add(num);
}
return nums;
}
```
该方法的实现思路是,从字符串的第一个字符开始遍历,如果字符是数字,则标记数字的开始和结束位置,如果不是数字,则将数字提取出来,并将标记重置。最后,如果遍历到字符串结尾时数字标记仍然存在,则将最后一个数字提取出来。您可以直接调用该方法,例如:
```java
String str = "a1b2c3d4e5";
List<Integer> nums = getNums(str);
System.out.println(nums); // 输出 [1, 2, 3, 4, 5]
```
需要注意的是,在提取数字时,我们使用了Java中的字符串截取substring()方法,并使用了Java中的整数解析parseInt()方法来将字符串转换为整数。
阅读全文