java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java提取字符串数字

java提取字符串中数字string以及获取字符串中的整数或小数

作者:ekkcole

这篇文章主要给大家介绍了关于java提取字符串中数字string以及获取字符串中的整数或小数的相关资料,需要的朋友可以参考下

方法一:提取字符串中的数字

// 提取字符串中的数字
    public static String extractNumbers(String input) {
        return input.replaceAll("[^0-9]", "");
    }

方法二:获取字符串中的整数或小数

public static String getNumber(String str) {
        if (Func.isNotEmpty(str)) {
            String pReg = "(\\d+\\.\\d+)";
            // 控制正则表达式的匹配行为的参数(小数)
            Pattern p = Pattern.compile(pReg);
            //Matcher类的构造方法也是私有的,不能随意创建,只能通过Pattern.matcher(CharSequence input)方法得到该类的实例.
            Matcher m = p.matcher(str);
            //m.find用来判断该字符串中是否含有与"(\\d+\\.\\d+)"相匹配的子串
            if (m.find()) {
                //如果有相匹配的,则判断是否为null操作
                //group()中的参数:0表示匹配整个正则,1表示匹配第一个括号的正则,2表示匹配第二个正则,在这只有一个括号,即1和0是一样的
                str = m.group(1) == null ? "" : m.group(1);
            } else {
                //如果匹配不到小数,就进行整数匹配
                pReg = "(\\d+)";
                p = Pattern.compile(pReg);
                m = p.matcher(str);
                if (m.find()) {
                    //如果有整数相匹配
                    str = m.group(1) == null ? "" : m.group(1);
                } else {
                    //如果没有小数和整数相匹配,即字符串中没有整数和小数,就设为空
                    str = "";
                }
            }
            return str;
        }
        return null;
    }

补充知识:java字符串中提取数字非正则表达式方法

使用Java中的Character类中的isDigit()方法来判断当前字符是否为数字,并在字符串中进行遍历。

public class ExtractNumbersFromString {
    public static void main(String[] args) {
        String str = "有12只猫和13只狗。";
        StringBuilder sb = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (Character.isDigit(c)) {
                sb.append(c);
            }
        }
        System.out.println(sb.toString());
    }
}

运行上述代码,即可从字符串中提取数字并输出。

总结 

到此这篇关于java提取字符串中数字string以及获取字符串中的整数或小数的文章就介绍到这了,更多相关java提取字符串数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文