编写一个方法getNums(),传入一个字符串,提取字符串中所有的数值并返回数值列表,多个连在一起的数字可视为一个数值public class NumDemo1 { public static void main(String[] args) { System.out.println(getNums("12%@35e06*a&78")); //输出:[12,35,6,78] System.out.println(getNums("a5Bc24*A%90r#Q8^v")); //输出:[5,24,90,8] } public static List<Integer> getNums(String str){ }}
时间: 2024-01-08 12:03:10 浏览: 34
public static List<Integer> getNums(String str){
List<Integer> nums = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for(int i=0; i<str.length(); i++){
char c = str.charAt(i);
if(Character.isDigit(c)){
sb.append(c);
}
else{
if(sb.length()>0){
nums.add(Integer.parseInt(sb.toString()));
sb.setLength(0);
}
}
}
if(sb.length()>0){
nums.add(Integer.parseInt(sb.toString()));
}
return nums;
}
代码说明:
1. 首先创建一个空的整数列表 nums,用于存储提取到的数字。
2. 创建一个 StringBuilder 对象 sb,用于存储连续的数字字符。
3. 遍历字符串中的每个字符,如果是数字字符,则将其添加到 sb 中;否则,如果 sb 非空,则将其转换为整数并添加到 nums 中,同时清空 sb。
4. 最后,如果 sb 非空,则将其转换为整数并添加到 nums 中。
5. 返回 nums。