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

 更新时间:2023年08月24日 10:04:56   作者: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提取字符串数字内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 用递归查找有序二维数组的方法详解

    用递归查找有序二维数组的方法详解

    本篇文章是对用递归查找有序二维数组的方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Springboot整合log4j2日志全解总结

    Springboot整合log4j2日志全解总结

    这篇文章主要介绍了Springboot整合log4j2日志全解总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Java实现将汉字转化为汉语拼音的方法

    Java实现将汉字转化为汉语拼音的方法

    这篇文章主要介绍了Java实现将汉字转化为汉语拼音的方法,实例演示了Java引用pinyin4j库实现汉子转化成拼音的使用技巧,需要的朋友可以参考下
    2015-12-12
  • Java代理模式及动态代理使用及说明

    Java代理模式及动态代理使用及说明

    文章解释了代理模式的概念及其应用场景,介绍了静态代理和动态代理的特点和应用场景,并详细讲解了基于JDK原生动态代理实现日志记录功能的方法
    2026-04-04
  • java 方法与数组基础使用详解

    java 方法与数组基础使用详解

    Java语言中的“方法”(Method)在其他语言当中也可能被称为“函数”(Function),数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。Java 语言中提供的数组是用来存储固定大小的同类型元素
    2022-04-04
  • Java实现PNG图片格式转BMP图片格式

    Java实现PNG图片格式转BMP图片格式

    在实际开发中,有时需要在不同平台、不同应用场景中对图片格式进行转换,本文主要介绍了如何使用 Java 语言实现将 PNG 格式的图片转换为 BMP 格式的图片,需要的可以了解下
    2025-03-03
  • 深入学习java ThreadLocal的源码知识

    深入学习java ThreadLocal的源码知识

    ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,特别适用于各个线程依赖不通的变量值完成操作的场景。下面我们来详细了解一下它吧
    2019-06-06
  • IDEA之MyBatisX使用的图文步骤

    IDEA之MyBatisX使用的图文步骤

    本文主要介绍了IDEA之MyBatisX使用,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-05-05
  • JAVA字符串类型switch的底层原理详析

    JAVA字符串类型switch的底层原理详析

    这篇文章主要给大家介绍了关于JAVA字符串类型switch的底层原理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JAVA具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • 浅析SpringBoot实现防盗链的五大常见漏洞和解决方法

    浅析SpringBoot实现防盗链的五大常见漏洞和解决方法

    文章详细分析了Spring Boot防盗链的五大致命漏洞,包括仅依赖Referer校验,未处理CDN代理穿透问题,不使用动态Token验证和未实现流量监控与异常处理,每个漏洞都提供了代码示例,并给出了解决方案
    2026-05-05

最新评论