21.text--转换罗马数字
转换罗马数字
键盘录入一个字符串
要求1:长度为小于等于9
要求2:只能是数字
将内容变成罗马数字
|-1 , ||-2 , |||-3 , |V-4 , V-5 , V|-6 , V||-7 , V|||-8 , |X-9
注意点:罗马数字里面是没有0的,如果键盘录入的数字包含0,可以变成“”(长度为0的字符串)
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str;
while (true) {
System.out.println("请输入一个长度 ≤ 9的字符串:");
str = s.next();
//要求1、要求2,调用方法
boolean flag = checkStr(str);
if(flag){
break;
}else{
System.out.println("输入有误,请重新输入!");
}
}
// StringBuilder sb = new StringBuilder();
// for (int i = 0; i < str.length(); i++) {
// char c = str.charAt(i);
// int number = c - 48;
// String novelStr = changeStr(number);
// sb.append(novelStr).append(" ");
// }
String sb = changeLuoMa1(str);
System.out.println(sb);
s.close();
}
public static boolean checkStr(String str){
//要求1:长度为小于等于9
if(str.length() >= 9){
return false;
}
//要求2:只能是数字
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c <= '0' || c >= '9'){
return false;
}
}
return true;
}
//将内容变成罗马数字,|-1 , ||-2 , |||-3 , |V-4 , V-5 , V|-6 , V||-7 , V|||-8 , |X-9
public static String changeLuoMa1(String str){
StringBuilder SB = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
switch (str.charAt(i)){
case '0':
SB.append(" ");
continue;
case '1':
SB.append("| ");
continue;
case '2':
SB.append("|| ");
continue;
case '3':
SB.append("||| ");
continue;
case '4':
SB.append("|V ");
continue;
case '5':
SB.append("V ");
continue;
case '6':
SB.append("V| ");
continue;
case '7':
SB.append("V|| ");
continue;
case '8':
SB.append("V||| ");
continue;
case '9':
SB.append("|X ");
continue;
}
}
return SB.toString();
}