利用Java代码将罗马数字转化成数字

罗马数字包含以下七种字符: I, V, X, LCD 和 M

字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

通常情况下载罗马数字中,如果左边的数字小于又边的数字,那么就用左边的数字减去右边的数字,相反则相加,例如XII表示2,IV表示4,VI则表示6;

public static int romanToInt(String s) {

        int ans=0;
        int preSum=getnum(s.charAt(0));
        for (int i=1;i<s.length();i++){
            int Sum=getnum(s.charAt(i));
            if (preSum>=Sum){
                ans=ans+preSum;
            }else{
                ans=ans-preSum;
            }
            preSum=Sum;
        }
        ans=ans+preSum;
        return ans;
    }
    public static int getnum(char ch) {
        switch (ch) {
            case 'I':
                return 1;
            case 'V':
                return 5;
            case 'X':
                return 10;
            case 'L':
                return 50;
            case 'C':
                return 100;
            case 'D':
                return 500;
            case 'M':
                return 1000;
            default:
                return 0;

        }
    }
    public static void main(String[] args) {
        Scanner scanner =new Scanner(System.in);
        String s=scanner.next();
        System.out.println(romanToInt(s));
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值