import java.util.Scanner;
public class Num2 {
public static void main(String[] args)
{
// I II III IV V VI VII VIII IX
//要求:将输入的字符串中的数字转换为罗马数字,长度小于9(运用方法:查表法)
//1输入数字
//2有效字符判断
//3运用方法转换数字
Scanner sc=new Scanner(System.in);
String str;
String result="";
while(true) {
System.out.println("请输入字符串:");
str=sc.next();
boolean flag=checkStr(str);
if (flag) {
break;
} else {
System.out.println("输入字符串不符合要求,请重新输入");
continue;
}
}
StringBuilder sb=new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c=str.charAt(i);
String s=changeLuoMa(c);
sb.append(s);
sb.append(" ");
}
System.out.println(sb);
}
//定义方法判断字符串是否符合(要求:长度小于9,输入的是数字)
public static boolean checkStr(String arr)
{
if(arr.length()>9)
{
return false;
}
else
{
for (int i = 0; i < arr.length(); i++) {
char c=arr.charAt(i);
if(c>'9'||c<'0')
{
return false;
}
}
}
return true;
}
//定义方法转换罗马数字 因为罗马数字没有0 所以用 ""来代替
public static String changeLuoMa(char number)
{// I II III IV V VI VII VIII IX
String str=switch(number)
{
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;
}
}