📜  java 从字符串中删除非数字 - Java (1)

📅  最后修改于: 2023-12-03 15:15:58.871000             🧑  作者: Mango

Java 从字符串中删除非数字

很多时候我们需要从字符串中获取数字或者把非数字删除,这时候可以使用 Java 的正则表达式来实现。下面我们来介绍两种方法来删除非数字。

方法一:使用正则表达式

Java有一个用于匹配数字的正则表达式:\d+,只需要把非数字部分替换为空字符串即可。

String str = "abc123def";
String strNum = str.replaceAll("[^0-9]", "");
System.out.println(strNum); // 输出 123

这段代码中,我们使用了 String 类的 replaceAll() 方法,它接受一个正则表达式和一个被替换的字符串。正则表达式 [^0-9] 表示匹配非数字字符,使用空字符串 "" 替换它们。

方法二:遍历字符串

我们也可以遍历字符串,逐个字符判断它是否是数字,如果是则拼接到一个新字符串中。

String str = "abc123def";
StringBuilder strNum = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
    if (Character.isDigit(str.charAt(i))) {
        strNum.append(str.charAt(i));
    }
}
System.out.println(strNum.toString()); // 输出 123

这段代码中,我们使用了 StringBuilder 类来拼接数字字符,使用 Character 类的 isDigit() 方法判断字符是否是数字。

总结

两种方法都可以从字符串中删除非数字,使用正则表达式的方法简单方便,适合处理较长的字符串;遍历字符串的方法代码量更少,适合处理较短的字符串。实际使用时可以根据需求选择不同的方法来实现。