为了账号安全,请及时绑定邮箱和手机立即绑定

While循环不更新TreeMap的值

While循环不更新TreeMap的值

12345678_0001 2021-05-20 14:10:45
我目前正在尝试编写一个程序,将0-3999的整数转换为罗马数字,并且我有正确的代码基础,因为当我键入eg 6时,它会生成IIIIII。但是,我希望将其转换为正确的罗马数字,即VI。我感觉我的While循环有问题,但是似乎无法弄清楚为什么TreeMap中的Key始终为1,意味着数字始终为I。我的代码有什么问题,以及如何将其更改为给我正确的罗马数字。任何帮助将不胜感激。    public String generate(int number) {    // System.out.println("NUMBER: " + number);    if (number < MinNumber || number > MaxNumber) {        System.out.println("Number is out of range");        return null;    }    StringBuilder romanToString = new StringBuilder();    NavigableMap<Integer, String> romanMap = createRomanMap();    // TreeMap<Integer, String> romanMap = createRomanMap();    for (Map.Entry<Integer, String> entries : romanMap.entrySet()) {        Integer key = entries.getKey();        String value = entries.getValue();        while (number >= key) {            number -= key;            romanToString.append(value);        }    }    System.out.println("Stringbuilder:  " + romanToString.toString());    return romanToString.toString();}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信