import java.util.Scanner;
//数字转罗马数字
public class StringDemoTest15 {
public static void main(String[] args) {
//1.创建阿拉伯数字字符串
String lmNum = "ⅠⅡⅢⅣⅤⅥⅦⅧⅨ";
//2.输入数字,若不在1-9范围内,则重新输入
System.out.print("请输入数字(1-9):");
String num = "";
num=compareNum(num);
//3.转换成罗马数字
String result = "";
for (int i = 0; i < num.length(); i++) {
//数字为1-9,ascll表上为48-57,所以每个字符-48转换成数字,而且数字1-9应该对应罗马数字上的第0-8索引,所以需要再-1
result = result + lmNum.charAt(num.charAt(i)-49);
}
System.out.println("罗马数字为:"+result);
}
public static String compareNum(String num) {
while (true) {
Scanner sc = new Scanner(System.in);
num = sc.next();
//num中每个数都判断是否为1-9,Ascll码为49-57.
int count =0;
for (int i = 0; i < num.length(); i++) {
//如果索引i指的数范围在1-9,继续循环,计数器+1.否则退出循环
if (num.charAt(i) > 48 && num.charAt(i) <= 57) {
count++;
} else {
System.out.print("输入错误,请重新输入:");
break;
}
}
//如果计数器等于数字长度,则退出循环,否则继续循环
if (count==num.length()){
break;
}
}
//返回输入的字符串数字
return num;
}
}