亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

電話號碼與字母組合與遞歸方法拋出空指針異常

電話號碼與字母組合與遞歸方法拋出空指針異常

暮色呼如 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 關注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號