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

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

通過方法時發生 NullPointerException

通過方法時發生 NullPointerException

呼喚遠方 2021-08-25 09:54:47
我試圖找出一些 Java 基礎知識。我在下面輸入的代碼編譯得很好,但不能運行。每次運行代碼時,它都會說NullPointerException發生錯誤。class testOnStrings {    public static void main (String args []){        String input, output;        // isWordPalindrome        input = "forever eating cheese";        boolean boolOutput = isWordPalindrome(input);        System.out.println("\n" + input + (boolOutput ? " is " : " is not ") + "a word palindrome");        input = "fall leaves when leaves fall";        boolOutput = isWordPalindrome(input);        System.out.println("\n" + input + (boolOutput ? " is " : " is not ") + "a word palindrome");        input = null;        boolOutput = isWordPalindrome(input);        System.out.println("\n" + input + (boolOutput ? " is " : " is not ") + "a word palindrome");    }    static String reverseWords(String input) {        // My code        String words[] = input.split(" ");        String reverseWord = "";        for (int pointer = words.length - 1; pointer >= 0; pointer--)            reverseWord += words [pointer] + " ";        return reverseWord;    }    static boolean isWordPalindrome(String input) {        // My code        String reverseWordInput = reverseWords(input);        boolean isPalindrome = input.equals(reverseWordInput);        return isPalindrome;    }}運行代碼時出現錯誤。Exception in thread "main" java.lang.NullPointerException    at idle.reverseWords(idle.java:21)    at idle.isWordPalindrome(idle.java:30)    at idle.main(idle.java:15)請幫忙,因為編譯成功但代碼沒有運行
查看完整描述

2 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

我建議在方法中處理特殊/角落情況,而不是期望調用者以空或null字符串行事。


您可以增強isWordPalindrome處理null,zero或singlecharacter 的方法,以便可以處理任何類型的輸入。


發件人


static boolean isWordPalindrome(String input) {

    // My code

    String reverseWordInput = reverseWords(input);

    boolean isPalindrome = input.equals(reverseWordInput);

    return isPalindrome;

}


static boolean isWordPalindrome(String input) {

    // My code

    if (input == null || input.length() == 0 || input.length() == 1) return true;

    String reverseWordInput = reverseWords(input);

    boolean isPalindrome = input.equals(reverseWordInput);

    return isPalindrome;

}

上面的增強也將避免調用reverseWords的null,zero或single性格。


同樣,我也會增強reverseWords。


發件人


static String reverseWords(String input) {

    // My code

    String words[] = input.split(" ");

    String reverseWord = "";

    for (int pointer = words.length - 1; pointer >= 0; pointer--)

        reverseWord += words [pointer] + " ";

    return reverseWord;

}


static String reverseWords(String input) {

    // My code

    if (input == null || input.length() == 0 || input.length() == 1) return input;

    String words[] = input.split(" ");

    String reverseWord = "";

    for (int pointer = words.length - 1; pointer >= 0; pointer--)

        reverseWord += words [pointer] + " ";

    return reverseWord;

}


查看完整回答
反對 回復 2021-08-25
?
慕桂英4014372

TA貢獻1871條經驗 獲得超13個贊

您已將問題指定input為 null

input = null;
boolOutput = isWordPalindrome(input);

為輸入分配空字符串值以防您不想要任何東西

input = "";
boolOutput = isWordPalindrome(input);


查看完整回答
反對 回復 2021-08-25
  • 2 回答
  • 0 關注
  • 257 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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