题解 | #表示数字#

表示数字

http://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6

看第一个大佬写的 666

import java.util.*;


public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);

        String str = sc.nextLine();

        String replaceAll = str.replaceAll("([0-9]+)", "*$1*");
        System.out.println(replaceAll);
    }
}

记录一下后向引用

	引用有问题  
	([A-Za-z]+)([0-9]+) 字母放前匹配结果没问题,([0-9]+)([A-Za-z]+)反过来就不行
import java.util.*;


public class Main{
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);

        String str = sc.nextLine();

        String replaceAll = str.replaceAll("([A-Za-z]+)([0-9]+)", "-$1- *$2*");   //正常
    //    String replaceA = str.replaceAll("([A-Za-z]+)([0-9]+)", " $1 *$2*");
        String replace = str.replaceAll("([0-9]+)([A-Za-z]+)", "*$1* $2 ");  //有问题
//        String replaceAll = str.replaceAll("([0-9]+)", "*$1*");
//        String replaceAll = str.replaceAll("([A-Za-z]+)", "*$1*");
        System.out.println(replaceAll);
      //  System.out.println(replaceA);
        System.out.println(replace);
    }
}

alt

全部评论
可能是因为输入字符串开始是字母的原因。可以分两个replaceAll进行替换
点赞 回复 分享
发布于 2022-07-07 17:59

相关推荐

评论
1
收藏
分享
牛客网
牛客企业服务