21.text--转换罗马数字

转换罗马数字

键盘录入一个字符串
要求1:长度为小于等于9
要求2:只能是数字
将内容变成罗马数字
|-1 , ||-2 , |||-3 , |V-4 , V-5 , V|-6 , V||-7 , V|||-8 , |X-9
注意点:罗马数字里面是没有0的,如果键盘录入的数字包含0,可以变成“”(长度为0的字符串)

public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        String str;
        while (true) {
            System.out.println("请输入一个长度 ≤ 9的字符串:");
            str = s.next();

            //要求1、要求2,调用方法
            boolean flag = checkStr(str);
            if(flag){
                break;
            }else{
                System.out.println("输入有误,请重新输入!");
            }
        }

//        StringBuilder sb = new StringBuilder();
//        for (int i = 0; i < str.length(); i++) {
//            char c = str.charAt(i);
//            int number = c - 48;
//            String novelStr = changeStr(number);
//            sb.append(novelStr).append(" ");
//        }

        String sb = changeLuoMa1(str);

        System.out.println(sb);

        s.close();
    }

    public static boolean checkStr(String str){
        //要求1:长度为小于等于9
        if(str.length() >= 9){
            return false;
        }
        //要求2:只能是数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if(c <= '0' || c >= '9'){
                return false;
            }
        }
        return true;
    }
//将内容变成罗马数字,|-1 , ||-2 , |||-3 , |V-4 , V-5 , V|-6 , V||-7 , V|||-8 , |X-9
    public static String changeLuoMa1(String str){
        StringBuilder SB = new StringBuilder();
        for (int i = 0; i < str.length(); i++) {
            switch (str.charAt(i)){
                case '0':
                    SB.append(" ");
                    continue;
                case '1':
                    SB.append("| ");
                    continue;
                case '2':
                    SB.append("|| ");
                    continue;
                case '3':
                    SB.append("||| ");
                    continue;
                case '4':
                    SB.append("|V ");
                    continue;
                case '5':
                    SB.append("V ");
                    continue;
                case '6':
                    SB.append("V| ");
                    continue;
                case '7':
                    SB.append("V|| ");
                    continue;
                case '8':
                    SB.append("V||| ");
                    continue;
                case '9':
                    SB.append("|X ");
                    continue;
            }
        }
        return SB.toString();
    }
posted on 2023-04-12 10:50  小黑确实不黑  阅读(27)  评论(0编辑  收藏  举报