2017-10-18 108 views
-1

我編寫了LeetCode問題Reverse Integer的代碼。我找不到我的解決方案出了什麼問題,但是在LeetCode官方網站上運行它時,它會傳播此運行時錯誤。如何解決這個java.lang.NumberFormatException:對於輸入字符串:「」基於我的代碼?

class Solution { 
    public int reverse(int x) 
    { 
     String resultStr = ""; 
     int result = 0; 
     boolean isNegative = false; 
     if(x < 0) 
     { 
      isNegative = true; 
     } 
     int integer = Math.abs(x); 
     int divid = integer; 
     while(divid!= 0) 
     { 
      divid = divid/10; 
      resultStr += integer%10; 
      integer = divid; 
     } 
     result = Integer.parseInt(resultStr); 
     if(isNegative) 
     { 
      result = 0-result; 
     } 
     return result; 
    } 
} 
+4

您需要檢查是否'resultStr.equals( 「」)'它解析爲'int'之前。如果'divid'爲'0','resultStr'將保持爲空。 – BackSlash

+0

好的。謝謝。 – user7027796

回答

-1
class Solution { 
    public int reverse(int x) { 
     String resultStr = ""; 
     int result = 0; 
     boolean isNegative = x < 0; 
     int integer = Math.abs(x); 
     int divid = integer; 
     while(divid!= 0) { 
      divid = divid/10; 
      resultStr += integer%10; 
      integer = divid; 
     } 
     if (!resultStr.equals("")) { 
      result = Integer.parseInt(resultStr); 
      if(isNegative) { 
       result = 0-result; 
      } 
     } 
     return result; 
    } 
} 
-1

這個問題的最終解決方案:

class Solution { 
public int reverse(int x) 
{ 
    String resultStr = ""; 
    int result = 0; 
    boolean isNegative = false; 
    if(x < 0) 
    { 
     isNegative = true; 
    } 
    int integer = Math.abs(x); 
    int divid = integer; 
    while(divid!= 0) 
    { 
     divid = divid/10; 
     resultStr += integer%10; 
     integer = divid; 
    } 
    if(resultStr.equals("")) 
    { 
     return 0; 
    } 
    else 
    { 
     try 
     { 
      result = Integer.parseInt(resultStr); 
      if(isNegative) 
      { 
       result = 0-result; 
      } 
      return result;    
     } 
     catch(Exception e) 
     { 
      return 0; 
     } 
    } 
} 

}

相關問題