package LI.JI;
import java.util.Scanner;
public class demo4 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String string;
while (true){
System.out.println("请输入一个字符串:");
string=scanner.next();
//判断字符是否合法
if (checkStr(string)){
break;
}else {
System.out.println("不符规范,请重新输入:");
continue;
}
}
//将字符串的数字全部转换成罗马数字
StringBuilder sb=new StringBuilder();
for (int i = 0; i < string.length(); i++) {
int num=string.charAt(i)-48;
sb.append(change(num));
}
System.out.println(sb);
}
public static boolean checkStr(String str){
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 change(int number){
//定义一个数组,产生对应关系
String arr[]={"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
return arr[number];
}
}
第二种:使用switch
package LI.JI;
import java.util.Scanner;
public class demo4 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String string;
while (true){
System.out.println("请输入一个字符串:");
string=scanner.next();
//判断字符是否合法
if (checkStr(string)){
break;
}else {
System.out.println("不符规范,请重新输入:");
continue;
}
}
//将字符串的数字全部转换成罗马数字
StringBuilder sb=new StringBuilder();
for (int i = 0; i < string.length(); i++) {
char c=string.charAt(i);
sb.append(change(c));
}
System.out.println(sb);
}
public static boolean checkStr(String str){
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 change(char number){
String str="";
switch (number){
case '0'->str="";
case '1'->str="Ⅰ";
case '2'->str="Ⅱ";
case '3'->str="Ⅲ";
case '4'->str="Ⅳ";
case '5'->str="Ⅴ";
case '6'->str="Ⅵ";
case '7'->str="Ⅶ";
case '8'->str="Ⅷ";
case '9'->str="Ⅸ";
default -> str="";
}
return str;
}
}