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

电话号码与字母组合与递归方法抛出空指针异常

电话号码与字母组合与递归方法抛出空指针异常

暮色呼如 2023-02-23 15:41:07
首先,我正在尝试构建一个程序,根据输入的电话号码打印出所有可能的字母组合。我的问题是我无法让我的递归函数工作,我得到了跟随错误堆栈。错误指向第 46 行是 "recursion("", line);和第 65 行是for (int i = 0; i < letters.length(); i++) {Exception in thread "main" java.lang.NullPointerException    at exercise.test.PhoneNumberCombo.recursion(PhoneNumberCombo.java:46)    at exercise.test.PhoneNumberCombo.main(PhoneNumberCombo.java:65)这是我的代码:import org.apache.commons.io.IOUtils;public class PhoneNumberCombo {                        static void recursion(String combination, String next_digits) {                                List<String> result = new ArrayList<String>();                              Map<String, String> phone = new HashMap<String, String>() {{                    put("2", "abc");                    put("3", "def");                    put("4", "ghi");                    put("5", "jkl");                    put("6", "mno");                    put("7", "pqrs");                    put("8", "tuv");                    put("9", "wxyz");                  }};                              // BASE CASE no more digits found                if (next_digits.length() == 0) {                                         // the combination is built                    result.add(combination);                    System.out.println(result);                }                                else {                                    String digit = next_digits.substring(0, 1);                  String letters = phone.get(digit);                                    for (int i = 0; i < letters.length(); i++) {                    String letter = phone.get(digit).substring(i, i + 1);                                      recursion(combination + letter, next_digits.substring(1));                }            }                   }    
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

显然,失败的行表明lettersnull. 例如,这将发生在您的地图中不存在的"0"or或任何其他."1"phoneString

你必须处理 whereletters之后null的情况String letters = phone.get(digit)。是跳过这个String还是抛出一个关于不合适符号的显式异常。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

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