比较字符串向后

时间:2016-09-23 03:38:42

标签: java roman-numerals

我正在做一个罗马数字转换器从1到999的十进制,我可以将值添加到acum,例如XV,我可以添加10 + 5 = 15但我不能减去像IV ,5-1 = 4,如果之前的字母值较低,我如何比较?我试图向后打印一个数组进行比较,但我不能。

import java.util.*;

public class NumerosRomanos {
    private String numero;

    public NumerosRomanos(String numero){
        setNumero(numero);
    }
        public void setNumero(String numero){
            this.numero=numero;
        }
        public String getNumero(){
            return numero;
        }

        public String mayusculas(String numero){
            return numero.toUpperCase();
    }

    public String separar(){
        String mayusculas=mayusculas(numero);
        String[] resultado=mayusculas.split("",0);
        for(int i=0;i<resultado.length;i++){
            System.out.println(resultado[i]);
        }
        int acum=0;
        for(int i=0;i<resultado.length;i++){
        switch(resultado[i]){
        case "I": acum+=1;
        break;
        case "V": acum+=5;
        break;
        case "X": acum+=10;
        break;
        case "L": acum+=50;
        break;
        case "C": acum+=100;
        break;
        case "D": acum+=500;
        break;
        case "M": acum+=1000;
        break;
        default: System.out.println("Error");
        break;
        }
        }
        for(int contador2=resultado.length; contador2 > 0;contador2--){
            System.out.println(resultado[contador2]);
        }
        String ultimo= Integer.toString(acum);
        return ultimo;
    }




    public String toString(){
        return separar();
    }

}

1 个答案:

答案 0 :(得分:0)

有人已经为此写了一个漂亮的解决方案。这可能对你有帮助。看一看。 https://stackoverflow.com/a/9073310/1388715