Java函数:获取字符串中的所有数字
发布时间:2023-07-01 08:22:00
获取字符串中的所有数字的方法有很多种,下面介绍其中几种常见的方法。
1. 使用正则表达式
使用正则表达式可以方便地匹配字符串中的数字。可以使用\\d+作为正则表达式,其中\\d表示匹配数字,+表示匹配一个或多个。
public static List<Integer> getNumbersUsingRegex(String str) {
List<Integer> numbers = new ArrayList<>();
Matcher matcher = Pattern.compile("\\d+").matcher(str);
while (matcher.find()) {
numbers.add(Integer.parseInt(matcher.group()));
}
return numbers;
}
2. 使用Character类的isDigit()方法
Character类的isDigit()方法可以判断一个字符是否是数字。可以遍历字符串的每个字符,将是数字的字符转换为整数。
public static List<Integer> getNumbersUsingCharacter(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;
}
3. 使用Scanner类
Scanner类可以方便地从一个字符串中按照指定的分隔符提取出数字。
public static List<Integer> getNumbersUsingScanner(String str) {
List<Integer> numbers = new ArrayList<>();
Scanner scanner = new Scanner(str);
scanner.useDelimiter("\\D+");
while (scanner.hasNextInt()) {
numbers.add(scanner.nextInt());
}
return numbers;
}
这些方法都可以在字符串中找到所有的数字,并以List的形式返回。根据具体的需求和字符串格式的不同,选择其中的一个或几个方法进行使用。
