杰瑞科技汇

java 正则表达式 提取数字

Java 正则表达式提取数字

在 Java 中,可以使用正则表达式来提取字符串中的数字,以下是几种常见的方法:

java 正则表达式 提取数字-图1
(图片来源网络,侵删)

提取所有数字

import java.util.regex.*;
public class ExtractNumbers {
    public static void main(String[] args) {
        String text = "abc123def456ghi789";
        // 正则表达式匹配一个或多个数字
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(text);
        while (matcher.find()) {
            System.out.println("找到数字: " + matcher.group());
        }
    }
}

输出:

找到数字: 123
找到数字: 456
找到数字: 789

提取特定格式的数字

提取整数

Pattern pattern = Pattern.compile("-?\\d+");  // 可选负号后跟数字

提取浮点数

Pattern pattern = Pattern.compile("-?\\d+\\.\\d+");  // 匹配如 123.456

提取科学计数法数字

Pattern pattern = Pattern.compile("-?\\d+(\\.\\d+)?[eE][+-]?\\d+");  // 匹配如 1.23e-4

提取数字并转换为类型

import java.util.regex.*;
import java.util.ArrayList;
import java.util.List;
public class ExtractNumbersAsInt {
    public static void main(String[] args) {
        String text = "年龄: 25, 体重: 65.5kg, 分数: 89.75";
        // 提取整数
        Pattern intPattern = Pattern.compile("\\d+");
        Matcher intMatcher = intPattern.matcher(text);
        List<Integer> integers = new ArrayList<>();
        while (intMatcher.find()) {
            integers.add(Integer.parseInt(intMatcher.group()));
        }
        System.out.println("整数列表: " + integers);
        // 提取浮点数
        Pattern doublePattern = Pattern.compile("\\d+\\.\\d+");
        Matcher doubleMatcher = doublePattern.matcher(text);
        List<Double> doubles = new ArrayList<>();
        while (doubleMatcher.find()) {
            doubles.add(Double.parseDouble(doubleMatcher.group()));
        }
        System.out.println("浮点数列表: " + doubles);
    }
}

从字符串中提取所有数字并求和

import java.util.regex.*;
public class SumNumbers {
    public static void main(String[] args) {
        String text = "我有3个苹果,5个橙子,2.5公斤香蕉";
        // 匹配整数和小数
        Pattern pattern = Pattern.compile("\\d+(\\.\\d+)?");
        Matcher matcher = pattern.matcher(text);
        double sum = 0;
        while (matcher.find()) {
            String numStr = matcher.group();
            double num = Double.parseDouble(numStr);
            sum += num;
            System.out.println("找到数字: " + num);
        }
        System.out.println("数字总和: " + sum);
    }
}

常用数字正则表达式总结

需求 正则表达式 说明
匹配整数 \d+ 一个或多个数字
匹配负整数 -?\d+ 可选负号后跟数字
匹配浮点数 \d+\.\d+ 数字.数字
匹配科学计数法 \d+[eE][+-]?\d+ 如 1e10 或 2.3E-4
匹配整数或浮点数 \d+(\.\d+)? 可选小数部分
匹配带千位分隔符的数字 \d{1,3}(,\d{3})*(\.\d+)? 如 1,234.56

希望这些示例能帮助你在 Java 中使用正则表达式提取数字!

java 正则表达式 提取数字-图2
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇