我设法让我的代码将大多数罗马数字转换为适当的十进制值.但它不适用于某些特殊情况.示例:XCIX= 99但我的代码打印出来109.
这是我的代码.
public static int romanConvert(String roman)
{
int decimal = 0;
String romanNumeral = roman.toUpperCase();
for(int x = 0;x<romanNumeral.length();x++)
{
char convertToDecimal = roman.charAt(x);
switch (convertToDecimal)
{
case 'M':
decimal += 1000;
break;
case 'D':
decimal += 500;
break;
case 'C':
decimal += 100;
break;
case 'L':
decimal += 50;
break;
case 'X':
decimal += 10;
break;
case 'V':
decimal += 5;
break;
case 'I':
decimal += 1;
break;
}
}
if (romanNumeral.contains("IV")) …Run Code Online (Sandbox Code Playgroud) 我的代码有问题.请帮忙.这是我到目前为止我的代码,我需要使用方法.它需要能够取整数1-3999并将其转换为罗马数字.有没有比我做的更简单的方法呢?
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
System.out.print("Enter a number between 1 and 3999 (0 to quit): ");
int input = in.nextInt();
while (input !=0 )
{
if(input < 0 || input > 3999){
System.out.println("ERROR! NUmber must be between 1 and 3999 (0 to quit): ");
System.out.print("Enter a number between 1 and 3999 (0 to quit): ");
input = in.nextInt();
}
else if(input > 0){
String roman = convertNumberToNumeral(input);
System.out.println("The number " + input …Run Code Online (Sandbox Code Playgroud) java ×2