我刚刚制作了这个java代码,将十进制转换为罗马。但结果没有显示出来。任何解决方法?
import java.util.*;
public class Roman {
private static String answer;
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("Enter a number: ");
int num, m;
num = input.nextInt();
String[] rom = {"m", "cm", "d", "cd", "c", "xc", "l", "xl", "x", "ix", "v", "iv", "i"};
int[] numerals = {1000,900,500,400,100,90,50,40,10,9,5,4,1};
for (int i=0; i<numerals.length; i++){
m = num/numerals[i];
num = num%numerals[i];
answer = new String(new char[m]).replace("\0", rom[i]);
}
System.out.println(answer);
}
}
答案 0 :(得分:0)
您必须通过连接罗马数字的单个字符串逐步构建字符串答案。
因此,如果num/numerals[i]
不为零,则需要查看。
试试这个:
for (int i=0; i<numerals.length; i++){
if(num/numerals[i] != 0) {
answer = answer.concat(rom[i]);
}
num = num%numerals[i];
}
我希望,这有助于:)