键盘录入一个长度小于等于9的数字,将其变为罗马数字。对应关系 :1-9对应罗马数字的1-9.0 对应“ ”.罗马数字没有零
public static void main(String[] args) {
//1.键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个长度小于等于9的数字");
String str;
while (true) {
str = sc.next();
//对输入的数字进行校验 看是否符合规定 要完成校验这一功能,用方法来实现比较好
//2.调用方法实现校验功能
boolean flag = check(str);
//如果检验结果是假,则要重复输入,如果结果是真,则执行下一步功能
if (flag){
break;
}else {
System.out.println("您的输入不合法,请重新输入");
continue;
}
}
//3.实现把输入的数字转换为罗马数字的这一功能 一样定义一个方法来完成
//在此之前 注意到输入的数字是字符形式 要把字符形式的数字转换为整数形式 完成此功能利用一个方法
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
int number = c - 48;
String s = convert(number);
sb.append(s);
}
System.out.println(sb);
}
public static String convert(int number){
String[] arr = {" ","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
return arr[number];
}
public static boolean check(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;
}