
 
 
 
import java.util.Scanner;
/**
 * @author gyf
 * @ClassName Test
 * @Date 2024/7/31 17:14
 * @Version V1.0
 * @Description : 方法一
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        // 要求长度小于等于9,且只能是数字
        String str = scanner.next();
        System.out.println(str);
        while (true) {
            if (isValidNumber(str)) {
                System.out.println("输入字符串正确");
                break;
            } else {
                System.out.println("输入的不正确,请重新输入:");
                str = scanner.next();
            }
        }
        // 初始化一个sb 做字符串的拼接
        StringBuilder sb = new StringBuilder("");
        System.out.println("你输入的字符串是:" + str);
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            // 将字符转化为整数 '0'-48 就表示数字0
            int number = c - 48;
            String tempstr = luoma(number);
            if (i == str.length() - 1) {
                sb.append(tempstr);
            } else {
                sb.append(tempstr);
                sb.append(" ");
            }
        }
        System.out.println("转化后的字符串为:");
        System.out.println(sb);
    }
    // 输入字符串校验的函数
    public static boolean isValidNumber(String str) {
        // 判断长度是否小于等于9
        if (str.length() > 9) {
            return false;
        }
        // 判断是否全为数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }
    // 获取对应的罗马字符串内容
    public static String luoma(int number) {
        // 作为替换的内容
        String[] luoma = {" ", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        return luoma[number];
    }
}
 
 
 
import java.util.Scanner;
/**
 * @author gyf
 * @ClassName Test
 * @Date 2024/7/31 17:14
 * @Version V1.0
 * @Description : 方法一
 */
public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        // 要求长度小于等于9,且只能是数字
        String str = scanner.next();
        System.out.println(str);
        while (true) {
            if (isValidNumber(str)) {
                System.out.println("输入字符串正确");
                break;
            } else {
                System.out.println("输入的不正确,请重新输入:");
                str = scanner.next();
            }
        }
        // 初始化一个sb 做字符串的拼接
        StringBuilder sb = new StringBuilder("");
        System.out.println("你输入的字符串是:" + str);
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            String tempstr = luoma(c);
            if (i == str.length() - 1) {
                sb.append(tempstr);
            } else {
                sb.append(tempstr);
                sb.append(" ");
            }
        }
        System.out.println("转化后的字符串为:");
        System.out.println(sb);
    }
    // 输入字符串校验的函数
    public static boolean isValidNumber(String str) {
        // 判断长度是否小于等于9
        if (str.length() > 9) {
            return false;
        }
        // 判断是否全为数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }
    // 获取对应的罗马字符串内容
    public static String luoma(char c) {
        // 字符对应字符串内容 复制给str 并作为一次的结果返回
        String str = switch (c){
           case '0'-> "";
           case '1'-> "I";
           case '2'-> "II";
           case '3'-> "III";
           case '4'-> "IV";
           case '5'-> "V";
           case '6'-> "VI";
           case '7'-> "VII";
           case '8'-> "VIII";
           case '9'-> "IX";
           default -> "";
        };
        return str;
    }
}
 
 
 
import java.util.Scanner;
/**
 * @author gyf
 * @ClassName Test
 * @Date 2024/7/31 17:14
 * @Version V1.0
 * @Description : 方法三
 */
public class Test {
    public static void main(String[] args) {
        String[] luoma = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个字符串: ");
        // 要求长度小于等于9,且只能是数字
        String str = scanner.next();
        System.out.println(str);
        while (true) {
            if (isValidNumber(str)) {
                System.out.println("输入字符串正确");
                break;
            } else {
                System.out.println("输入的不正确,请重新输入:");
                str = scanner.next();
            }
        }
        // 初始化一个sb 做字符串的拼接
        StringBuilder sb = new StringBuilder("");
        System.out.println("你输入的字符串是:" + str);
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            String tempstr = luoma(c, luoma);
            if (i == str.length() - 1) {
                sb.append(tempstr);
            } else {
                sb.append(tempstr);
                sb.append(",");
            }
        }
        System.out.println("转化后的字符串为:");
        System.out.println(sb);
    }
    // 输入字符串校验的函数
    public static boolean isValidNumber(String str) {
        // 判断长度是否小于等于9
        if (str.length() > 9) {
            return false;
        }
        // 判断是否全为数字
        for (int i = 0; i < str.length(); i++) {
            char c = str.charAt(i);
            if (c < '0' || c > '9') {
                return false;
            }
        }
        return true;
    }
    // 获取对应的罗马字符串内容
    public static String luoma(char c, String[] arr) {
        String str = "";
        if ((c - 48) == 0) {
            str = arr[0];
        } else if ((c - 48) == 1) {
            str = arr[1];
        } else if ((c - 48) == 2) {
            str = arr[2];
        } else if ((c - 48) == 3) {
            str = arr[3];
        } else if ((c - 48) == 4) {
            str = arr[4];
        } else if ((c - 48) == 5) {
            str = arr[5];
        } else if ((c - 48) == 6) {
            str = arr[6];
        } else if ((c - 48) == 7) {
            str = arr[7];
        } else if ((c - 48) == 8) {
            str = arr[8];
        } else if ((c - 48) == 9) {
            str = arr[9];
        } else {
            str = "";
        }
        return str;
    }
}