java 正则实战 牛客网 HJ96 表示数字

原题地址如下:

https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6?tpId=37&tqId=21319&rp=1&ru=/ta/huawei&qru=/ta/huawei&difficulty=2&judgeStatus=&tags=/question-ranking

复制代码
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main{
  public static void main(String[] args){
    try (Scanner input = new Scanner(System.in)) {
      while(input.hasNext()){
        StringBuffer str = new StringBuffer();//StringBuffer可以配合Match的appendReplacement()进行匹配替换
        String inputStr = input.nextLine();
        String patternStr = "\\d+";//注意记得转义转义符号
        Pattern pattern = Pattern.compile(patternStr);//套路1构建Pattern
        Matcher matcher = pattern.matcher(inputStr);//套路二构建Match
        while(matcher.find()){//套路三:Match的find()是和group()相互配合的,第一次调用 find()在输入的开始处开始搜索。下一个调用将在上一次匹配后开始搜索。group()方法通过前一个成功的find()方法调用返回找到的字符串
          matcher.appendReplacement(str,"*" + matcher.group() + "*");//appendReplacement()参数一要指定一个StringBuffer用来存放匹配替换后的新结果;参数二要指定替换的内容;替换的目标就是当前find()所指向的匹配
        }
        matcher.appendTail(str);//为了完整输出还需要将未匹配的后续字符串拼接至末尾
        System.out.println(str);
      }
    }
  }
}
复制代码

 

posted @   Kisen  阅读(307)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示