2014-08-30 61 views
-4

數字格式拋出異常時引發針對代碼:數字格式異常在機器人的java

String id=etgetinfo.getText().toString(); 
long l= Long.parseLong(id); 

登錄貓:

11月8日至30日:13:00.995:E/AndroidRuntime(1554) :致命例外:main 08-30 11:13:00.995:E/AndroidRuntime(1554):進程: com.tarragon.tmessenger,PID:1554 08-30 11:13:00.995: E/AndroidRuntime(1554) :java.lang.NumberFormatException:無效長: 「」 十一月8日至30日:13:00.995:E/AndroidRuntime(1554):一個(0)收藏舉報本文打印本文關閉窗口關閉窗口java.lang.Long.invalidLong(Long.java:124)08-30 11:13:00.995: E/AndroidRuntime(1554):at java.lang.Long.parseLong(Long.java:345) 08 -30 11:13:00.995:E/AndroidRuntime(1554):at java.lang.Long.parseLong(Long.java:318)08-30 11:13:00.995: E/AndroidRuntime(1554):at com.tarragon.tmessenger.SqliteExample.onClick(SqliteExample.java:78) 11月8日至30日:13:00.995:E/AndroidRuntime(1554):在 android.view.View.performClick(View.java:4438)08 -30 11:13:00.995: E/AndroidRuntime(1554):at android.view.View $ PerformClick.run(View.java:18422)08-30 11:13:00.995:E/AndroidRuntime(1554) :在 android.os.Handler.handleCallback(Handler的.java:733)

+0

看起來你是r在你的'String'中感知一些不可分析的數字。確保你的號碼周圍沒有空格。 – 2014-08-30 15:22:01

+1

'無效的長:「」'我想知道這意味着什麼。也許一個空字符串不能被解析爲一個數字? ... – Tom 2014-08-30 15:24:27

回答

0

貌似

E/AndroidRuntime(1554): java.lang.NumberFormatException: Invalid long: "" 08-30 11:13:00.995: 

意味着你試圖解析字符串,其實是空字符串。這並沒有映射到一個有效的長,所以你會得到一個異常。你可能想要檢查這樣的特殊情況,或者使用try..catch來優雅地處理它們。

1

String""這不是一個數字 - 你可以做一個檢查這種情況就像

long l=(id != null && id.trim().length() > 0) ? Long.parseLong(id.trim()) : 0; 

或者,將一個try {} catch塊及類似

long l = 0; 
try { 
    l = Long.parseLong((id != null) ? id.trim() : "0"); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
0
默認值

請嘗試以下代碼並檢查你是否正在轉換編號

long l=0; 
    String res=etgetinfo.getText().toString().trim(); 
    if(!res.equals("")) 
    l=Long.valueOf(res);