首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现输出为“Null”而不是Java中的String ?

如何实现输出为“Null”而不是Java中的String ?
EN

Stack Overflow用户
提问于 2018-10-22 05:03:32
回答 1查看 0关注 0票数 0

我编写了一个程序,将一组十进制数转换为一组罗马数字,用于1到9'999之间的数字,但是当我输出返回的String数组时,我只得到“Null”作为输出,我不知道为什么我想知道如何解决它。输出的第一个数字输出的数量与数组的长度相同,分别输入到我希望转换为罗马数字的十进制数。

代码语言:javascript
复制
import java.util.Scanner;

public class Roman {

    public static void main(String [] args) {
        Scanner cin = new Scanner(System.in);
        int amount = cin.nextInt();
        int [] sequence = new int[amount];
        for (int i = 0; i < amount; ++i) sequence[i] = cin.nextInt();
        String[] converted = new String[amount];
        for (int i = 0; i < amount; ++i) System.out.println(converted[i]);
    }

    public static String[] conversion(int n, int[] decimals) {
        String [] romanNumbers = new String[n];
        for (int i = 0; i < n; ++i) romanNumbers[i] = "";
        for (int i = 0; i < n; ++i) {
            while (decimals[i] != 0) {
                if (decimals[i] >= 1000) {
                    romanNumbers[i] += "M";
                    decimals[i] -= 1000;
                }
                else if (decimals[i] >= 890 && decimals[i] < 1000) {
                    romanNumbers[i] += "CM";
                    if (decimals[i] < 900) decimals[i] -= 890;
                    else decimals[i] -= 900;
                }
                else if (decimals[i] >= 500 && decimals[i] < 890) {
                    romanNumbers[i] += "D";
                    decimals[i] -= 500;
                }
                else if (decimals[i] >= 390 && decimals[i] < 500) {
                    romanNumbers[i] += "CD";
                    if (decimals[i] < 400) decimals[i] -= 390;
                    else decimals[i] -= 400;
                }
                else if (decimals[i] >= 100 && decimals[i] < 390)  {
                    romanNumbers[i] += "C";
                    decimals[i] -= 100;
                }
                else if (decimals[i] >= 90 && decimals[i] < 100) {
                    romanNumbers[i] += "XC";
                    decimals[i] -= 90;
                }
                else if (decimals[i] >= 50 && decimals[i] < 90) {
                    romanNumbers[i] += "L";
                    decimals[i] -= 50;
                }
                else if (decimals[i] >= 40 && decimals[i] < 50) {
                    romanNumbers[i] += "XL";
                    decimals[i] -= 40;
                }
                else if (decimals[i] >= 10 && decimals[i] < 40) {
                    romanNumbers[i] += "X";
                    decimals[i] -= 10;
                }
                else if (decimals[i] < 10) {
                    switch (decimals[i]) {
                        case 1: romanNumbers[i] += "I"; --decimals[i]; break;
                        case 2: romanNumbers[i] += "II"; decimals[i] -= 2; break;
                        case 3: romanNumbers[i] += "III"; decimals[i] -= 3; break;
                        case 4: romanNumbers[i] += "IV"; decimals[i] -= 4; break;
                        case 5: romanNumbers[i] += "V"; decimals[i] -= 5; break;
                        case 6: romanNumbers[i] += "VI"; decimals[i] -= 6; break;
                        case 7: romanNumbers[i] += "VII"; decimals[i] -= 7; break;
                        case 8: romanNumbers[i] += "VIII"; decimals[i] -= 8; break;
                        case 9: romanNumbers[i] += "IX"; decimals[i] -= 9; break;
                    }
                }
            }
        }
        return romanNumbers;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2018-10-22 14:09:04

试试以下代码:

代码语言:txt
复制
public static void main(String [] args) {
    Scanner cin = new Scanner(System.in);
    int amount = cin.nextInt();
    int [] sequence = new int[amount];
    for (int i = 0; i < amount; ++i) sequence[i] = cin.nextInt();
    String[] converted = new String[amount];
    converted = conversion(amount, sequence);
    for (int i = 0; i < amount; ++i) System.out.println(converted[i]);
}

public static String[] conversion(int n, int[] decimals) {
    String [] romanNumbers = new String[n];
    for (int i = 0; i < n; ++i) romanNumbers[i] = "";
    for (int i = 0; i < n; ++i) {
        while (decimals[i] != 0) {
            if (decimals[i] >= 1000) {
                romanNumbers[i] += "M";
                decimals[i] -= 1000;
            }
            else if (decimals[i] >= 890 && decimals[i] < 1000) {
                romanNumbers[i] += "CM";
                if (decimals[i] < 900) decimals[i] -= 890;
                else decimals[i] -= 900;
            }
            else if (decimals[i] >= 500 && decimals[i] < 890) {
                romanNumbers[i] += "D";
                decimals[i] -= 500;
            }
            else if (decimals[i] >= 390 && decimals[i] < 500) {
                romanNumbers[i] += "CD";
                if (decimals[i] < 400) decimals[i] -= 390;
                else decimals[i] -= 400;
            }
            else if (decimals[i] >= 100 && decimals[i] < 390)  {
                romanNumbers[i] += "C";
                decimals[i] -= 100;
            }
            else if (decimals[i] >= 90 && decimals[i] < 100) {
                romanNumbers[i] += "XC";
                decimals[i] -= 90;
            }
            else if (decimals[i] >= 50 && decimals[i] < 90) {
                romanNumbers[i] += "L";
                decimals[i] -= 50;
            }
            else if (decimals[i] >= 40 && decimals[i] < 50) {
                romanNumbers[i] += "XL";
                decimals[i] -= 40;
            }
            else if (decimals[i] >= 10 && decimals[i] < 40) {
                romanNumbers[i] += "X";
                decimals[i] -= 10;
            }
            else if (decimals[i] < 10) {
                switch (decimals[i]) {
                    case 1: romanNumbers[i] += "I"; --decimals[i]; break;
                    case 2: romanNumbers[i] += "II"; decimals[i] -= 2; break;
                    case 3: romanNumbers[i] += "III"; decimals[i] -= 3; break;
                    case 4: romanNumbers[i] += "IV"; decimals[i] -= 4; break;
                    case 5: romanNumbers[i] += "V"; decimals[i] -= 5; break;
                    case 6: romanNumbers[i] += "VI"; decimals[i] -= 6; break;
                    case 7: romanNumbers[i] += "VII"; decimals[i] -= 7; break;
                    case 8: romanNumbers[i] += "VIII"; decimals[i] -= 8; break;
                    case 9: romanNumbers[i] += "IX"; decimals[i] -= 9; break;
                }
            }
        }
    }
    return romanNumbers;
}

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档