Java 使用数组将罗马数字转换为阿拉伯格式时出现问题

Java 使用数组将罗马数字转换为阿拉伯格式时出现问题,java,Java,这是我从阿拉伯语到罗马语的代码: public class RomanNumeral { private static int[] arabics = {1000, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; private static String[] romans = {"M","CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; publi

这是我从阿拉伯语到罗马语的代码:

public class RomanNumeral
{

    private static int[] arabics = {1000, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
    private static String[] romans = {"M","CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
    public static String ArabicToRoman(int arabic)
    {
        int placeHolder = 0;
        String roman = "";
        placeHolder = arabic / 1;
      for(int i = 0; arabic > 0; i++)
      {
          placeHolder = arabic / arabics[i];

          for(int y = 1; y <= placeHolder; y++)
          {
              roman = roman + romans[y];
          }
          arabic = arabic % arabics[i];
      }
      return roman;
    }
公共类罗马数字
{
私有静态int[]阿拉伯文={1000,500,400,100,90,50,40,10,9,5,4,1};
私有静态字符串[]罗马={“M”、“CM”、“D”、“CD”、“C”、“XC”、“L”、“XL”、“X”、“IX”、“V”、“IV”、“I”};
公共静态字符串ArabicToRoman(int阿拉伯语)
{
int占位符=0;
字符串罗马=”;
占位符=阿拉伯语/1;
for(int i=0;阿拉伯语>0;i++)
{
占位符=阿拉伯语/阿拉伯语[i];

对于(int y=1;y可能类似于:

private static int[] arabics = {1000, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; private static String[] romans = {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; public static int indexOf(String needle, String[]haystack, int length){ int i=-1;while(++i<length&&!(""+haystack.charAt(i)).equals(needle)); return i==length?-1:i; } public static int RomanToArabic(String roman){ int len = roman.length(); int placeHolder[] = new int[len]; for(int i=0;i<len;i++) placeHolder[i]=0; int arabic = 0, k, j=0; for(;j<len-1;j++){ if((k=indexOf(roman.charAt(j)+""+roman.charAt(j+1),romans,13))!=-1) j++; else k=indexOf(roman.charAt(j)+"",romans,13); arabic += arabics[k]; } if(j==len-1)arabic += arabics[indexOf(roman.charAt(j)+"",romans,13)]; return arabic; } 私有静态int[]阿拉伯文={1000,500,400,100,90,50,40,10,9,5,4,1}; 私有静态字符串[]罗马={“M”、“CM”、“D”、“CD”、“C”、“XC”、“L”、“XL”、“X”、“IX”、“V”、“IV”、“I”}; 公共静态int indexOf(字符串指针,字符串[]干草堆,int长度){ int i=-1;while(++i)