JAVA replaceall的用法

本文介绍了一种解决力扣问题的思路,通过replaceAll方法将罗马数字中的特定组合(如IV, IX等)替换为对应的字母,便于后续使用HashMap进行数值查找。这种方法虽然简单但有效,帮助理解字符串处理技巧和HashMap的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在刷力扣时,罗马转阿拉伯数字时,遇到replaceall的使用

class Solution {
    public int romanToInt(String s) {
        //先处理特殊情况,将特殊情况用占位符表示
        //IV=A=4,IX=B=9,XL=E=40,XC=F=90,CD=J= 400 CM=K=900
        s = s.replaceAll("IV", "A");
        s = s.replaceAll("IX", "B");
        s = s.replaceAll("XL", "E");
        s = s.replaceAll("XC", "F");
        s = s.replaceAll("CD", "J");
        s = s.replaceAll("CM", "K");
        Map<Character,Integer> keyMap=new HashMap<>();
        keyMap.put('I',1);
        keyMap.put('V',5);
        keyMap.put('X',10);
        keyMap.put('L',50);
        keyMap.put('C',100);
        keyMap.put('D',500);
        keyMap.put('M',1000);
        keyMap.put('A',4);
        keyMap.put('B',9);
        keyMap.put('E',40);
        keyMap.put('F',90);
        keyMap.put('J',400);
        keyMap.put('K',900);
        int result = 0;
        char[] chars=s.toCharArray();
        for (char c: chars) {
            result+=keyMap.get(c);
        }
        return result;
    }
}

非本人代码

即是将s字符串中相应的IV等符号自动转换成字母“A”,"B"等,用于后续的hashmap查找,虽说是个笨方法,但还是get到知识点了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值