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)