要求1:长度为小于等于9要求2:只能是数字
将内容变成罗马数字
下面是阿拉伯数字跟罗马数字的对比关系:
I-1、II-2、III-3、IV-4、V-5、VI-6、VII-7、VII-8、IX-9 注意点:
罗马数字里面是没有0的
如果键盘录入的数字包含0,可以变成""(长度为0的字符串)
//方法一:
package train2;import java.util.Scanner;public class finger {public static void main(String[] args) {//1.键盘录入数据Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("请输入一个字符串");str = sc.next();//2.检验字符串boolean flag = check(str);if (flag) {break;} else {System.out.println("字符串不符合规则");continue;}}//运用查表法,将数字与罗马字符进行对应StringBuilder s = new StringBuilder();//StringBuilder是可变式字符串,不需要做缓冲for (int i = 0; i < str.length(); i++) {char a = str.charAt(i);int num = a - 48;String get = changluoma(num);//在s中添加gets.append(get);}System.out.println(s);}//建立一个新方法导入罗马数字并返回一个数组public static String changluoma(int number) {//定义一个数组让数字与罗马数字产生对应关系String[] arr = {"", "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ"};return arr[number];}//建立一个新方法进行判断public static boolean check(String str) {//要求1:长度小于9if (str.length() > 9) {return false;}//要求2:只能是数字for (int i = 0; i < str.length(); i++) {char a = str.charAt(i);if (a < '0' || a > '9') {return false;}}//判断全部的字符串return true;}
}
//方法二:
package train2;import java.util.Scanner;public class finger2 {public static void main(String[] args) {//1.键盘录入数据Scanner sc = new Scanner(System.in);String str;while (true) {System.out.println("请输入一个字符串");str = sc.next();//2.检验字符串boolean flag = check(str);if (flag) {break;} else {System.out.println("字符串不符合规则");continue;}}//运用查表法,将数字与罗马字符进行对应StringBuilder s = new StringBuilder();//StringBuilder是可变式字符串,不需要做缓冲for (int i = 0; i < str.length(); i++) {char a = str.charAt(i);String get = changluoma(a);//在s中添加gets.append(get);}System.out.println(s);}//建立一个新方法导入罗马数字并返回一个数组public static String changluoma(char number) {//运用switch进行分配String str = switch (number) {case '0' -> "";case '1' -> "Ⅰ";case '2' -> "Ⅱ";case '3' -> "Ⅲ";case '4' -> "Ⅳ";case '5' -> "Ⅴ";case '6' -> "Ⅵ";case '7' -> "Ⅶ";case '8' -> "Ⅷ";case '9' -> "Ⅸ";default -> str = "";};return str;}//建立一个新方法进行判断public static boolean check(String str) {//要求1:长度小于9if (str.length() > 9) {return false;}//要求2:只能是数字for (int i = 0; i < str.length(); i++) {char a = str.charAt(i);if (a < '0' || a > '9') {return false;}}//判断全部的字符串return true;}
}