本文介绍在
java
中使用
正则表达式
快速提取字符串中所有连续数字的方法,并给出安全转换为整数的完整示例及注意事项。
在实际开发中,经常需要从混合文本(如 "Task123"、"Order#4567-processed")中提取纯数字部分。最简洁高效的方式是利用 String.replaceAll() 配合正则表达式 [^0-9],该表达式表示“匹配所有非数字字符”,将其替换为空字符串后,即可保留原始字符串中的全部数字(按出现顺序拼接)。
例如:
⚠️ 注意:此方法会
合并所有数字片段
。若输入为 "A1B2C3",结果为 "123";若需提取首个数字子串(如 "1"),或区分多个独立数字(如 ["1", "2", "3"]),则应改用 Pattern + Matcher 进行分组匹配。
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
进一步,若需将提取结果转为 int 类型,务必进行空值和溢出校验:
✅ 总结:
✅ 简单场景(单组/拼接数字)→ 优先用 replaceAll("[^0-9]", "");
✅ 复杂需求(多组、位置限定、带符号)→ 使用正则 Pattern.compile("\d+") 配合 Matcher.find();
✅ 生产环境务必校验空字符串与数值范围,避免运行时异常。
String str = "Task1234";
String numberStr = str.replaceAll("[^0-9]", ""); // 结果:"1234"if (numberStr.isEmpty()) {
throw new IllegalArgumentException("No digit found in string: " + str);
}
try {
int number = Integer.parseInt(numberStr);
System.out.println("Extracted number: " + number); // 输出:1234
} catch (NumberFormatException e) {
System.err.println("Number too large to fit in int: " + numberStr);
}