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; } }