java复习3,字符串练习
import java.util.Scanner;
//键盘录入数字型字符串转罗马数字(长度小于9),罗马数字中没有0,用空字符串“”替代
public class StringDemo9 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String input;
while(true){
System.out.println("请输入一个字符串,使其转换为罗马数字");
input = sc.next();
boolean flag=checkStr(input);
if(flag){
break;
}else {
System.out.println("请按要求重新输入");
continue;
}
}
StringBuilder sb=new StringBuilder();
for (int i = 0; i < input.length(); i++) {
char c=input.charAt(i);
int number=c-48;
String str=change(number);
sb.append(str);
}
System.out.println(sb);
}
public static String change(int number){
String[] arr ={"","Ⅰ","Ⅱ","Ⅲ","Ⅳ","Ⅴ","Ⅵ","Ⅶ","Ⅷ","Ⅸ"};
return arr[number];
//如果jdk版本为新版本可以试试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 checkStr(String str){
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;
}
}
欢迎大佬们指正