Java如何使用正则表达式从字符串中提取数字

 更新时间:2023年12月19日 08:56:45   作者:bat在等我  
这篇文章主要介绍了Java如何使用正则表达式从字符串中提取数字问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

使用正则表达式从字符串中提取数字

    public static void main(String[] args) {
        String content = "111adj222adf33-f44444";
        Pattern pattern = compile("\\d+"); // java.util.regex.Pattern.compile
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }
        /**
         * 结果:
         * 111
         * 222
         * 33
         * 44444
         */
    }

java从字符串中提取数字,这个方法真的很不错

Java中提取字符串中的数字,可以使用正则表达式或非正则表达式的方法。

1.使用正则表达式

可以使用正则表达式"\d+"来匹配字符串中的数字,并使用Matcher和Pattern类实现。

import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class ExtractNumbersFromString {
 
    public static void main(String[] args) {
    
        String str = "有12只猫和13只狗。";
        Pattern pattern = Pattern.compile("\\d+");
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

2.非正则表达式方法

使用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());
    }
}

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring Cloud Gateway 整合 knife4j 聚合接口文档功能

    Spring Cloud Gateway 整合 knife4j 聚合接口文档功能

    这篇文章主要介绍了Spring Cloud Gateway 整合 knife4j 聚合接口文档的相关知识,我们可以基于 Spring Cloud Gateway 网关 + nacos + knife4j 对所有微服务项目的接口文档进行聚合,从而实现我们想要的文档管理功能,需要的朋友可以参考下
    2022-02-02
  • Java实现Socket服务端与客户端双向通信功能

    Java实现Socket服务端与客户端双向通信功能

    大家好,由于工作上业务的需要,在java项目中引入了socket通信,特此记录一下,用以备份,本文章中的socket通信实现了,服务端与客户端的双向通讯,以及二者之间的心跳通信,服务端重启之后,客户端的自动重连功能,需要的朋友可以参考下
    2025-04-04
  • 简单谈谈Java遍历树深度优先和广度优先的操作方式

    简单谈谈Java遍历树深度优先和广度优先的操作方式

    这篇文章主要介绍了简单谈谈Java遍历树深度优先和广度优先的操作方式的相关资料,需要的朋友可以参考下
    2023-03-03
  • SpringBoot项目集成License授权与续期完整指南

    SpringBoot项目集成License授权与续期完整指南

    SpringBoot项目中,通过引入第三方spring-boot-starter-license组件,可以快速实现系统权限到期控制、License 证书管理等功能,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • 浅谈java实现重载的方法

    浅谈java实现重载的方法

    方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。
    2015-09-09
  • Java中keytool的使用

    Java中keytool的使用

    Keytool 是一个JAVA环境下的安全钥匙与证书的管理工具,Keytool将密钥(key)和证书(certificates)存在一个称为keystore 的文件(受密码保护)中,本文重点给大家介绍keytool的使用,感兴趣的朋友一起看看吧
    2022-02-02
  • JAVA应用频繁GC问题排查过程

    JAVA应用频繁GC问题排查过程

    本文主要记一次针对系统频繁GC问题的排查过程,通过分析dump堆栈文件和线程转储,发现慢接口的代码中存在慢SQL,导致数据库连接池耗尽,进而阻塞Dubbo线程,引发频繁GC,解决方案包括慢SQL优化、方法优化和业务优化
    2026-04-04
  • Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)

    Springboot整合Redis实现超卖问题还原和流程分析(分布式锁)

    最近在研究超卖的项目,写一段简单正常的超卖逻辑代码,多个用户同时操作同一段数据出现问题,纠结该如何处理呢?下面小编给大家带来了Springboot整合Redis实现超卖问题还原和流程分析,感兴趣的朋友一起看看吧
    2021-10-10
  • 浅谈多线程_让程序更高效的运行

    浅谈多线程_让程序更高效的运行

    下面小编就为大家带来一篇浅谈多线程_让程序更高效的运行。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Spring注解之@validated使用详解

    Spring注解之@validated使用详解

    spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理,这篇文章主要介绍了Spring注解之@validated使用,需要的朋友可以参考下
    2023-01-01

最新评论