欢迎访问宙启技术站
智能推送

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的形式返回。根据具体的需求和字符串格式的不同,选择其中的一个或几个方法进行使用。