首頁 常見問題 numberformatexception是什麼異常

numberformatexception是什麼異常

Jan 14, 2021 pm 06:25 PM
numberformatexception 例外

numberformatexception表示數字格式化異常,需要查看字串裡面夾雜著string或其他類型,需要注意文字裡面的內容必須是數字形式的字串。

numberformatexception是什麼異常

本教學操作環境:windows7系統、Dell G3電腦。

今天出現了個數字轉換異常,處理好後稍微總結了幾個出現情境。




E/AdroidRutime:致命例外:java.lang.NumberFormatException: Invalid int: "0 "

java.lang .NumberFormatException 數字格式異常。當試圖將一個String

轉換為指定的數字類型,而該字串確不滿足數字類型要求的格式時,拋出該異常.

##Invalid int: "0 "  提示

把 "0 " 轉換成數字類型時出錯了.

具體是哪個類別的哪個方法的哪一行的錯誤了,看下面錯誤堆疊,at com. example.myclock.TimerView$5.onTextChanged(TimerView.java:95) com.example.myclock.TimerView 類別的onTextChanged方法裡, imerView.java的第95行出錯了

.

---- --原因分析--------------------######

"0 "在0後面有空格,當字串轉換成數字時應該要移除空格。

------解決方案--------------------

如: int vale##=Integer .parseInt(s.toString() .trim()); // ToString()是轉換為字串的方法Trim()是去字串兩邊空格的方法。

其他拋出NumberFormatException情況:

##情況一,超出轉換數值類型範圍:

用Integer.parseInt()轉換字元時拋出NumberFormatException異常,把字元改短一點又沒事
String   line3[1]= "8613719716 ";  #  int   int1=java.lang.Integer.parseInt(line3[1]); 
 

##以上是程式中的一小段,但正在執行的過程中總是拋出例外 


Exception   in   thread   "main "   java.lang.NumberFormatException:   For   input   string:   "86137197  For   input   string:   "86137197 ------原因分析-------------- ------

int型別儲存範圍是-2,147,483,648 --2,147,483,647。 用System.out.println(Integer.MAX_VALUE);輸出的是2147483647。 而你的 String line3[1]= "8613719716 ";超過了這個最大的值。

------解決方案--------------------

8613719716 根本無法直接用int表示的,只能用long , 如果更大了就得用到BigInteger 。 Long.parseLong(String)

參考:http://www.myexception.cn/j2se/NumberFormatException.html

##情況二,轉換值類型沒有考慮值為空的狀況:

在Android中這個序列是否正確,我打算把我得到的edittext中的值轉換為整數.

startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());

####################################################################################################################################################################如果###### logcat 出現如下錯誤#########. ###05-12 10:26:35.536: ERROR/AndroidRuntime(293): java.lang.NumberFormatException: unable to parse ' ' as integer##########

. ------原因分析--------------------

#如果textbox startTime_hour_edittext 為空, Integer.parseInt就會試圖把"" 轉換成integer。這就是NumberFormatException出現的原因。所以在轉換為int類型前需要判斷 textbox startTime_hour_edittext中是否為空。

------解決方案--------------------

#在使用 <span >startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());</span><span style="font-family:Arial,\Helvetica Neue\, Helvetica,sans-serif; color:#242729">之前</span>

判斷條件:

if(!startTime_hour_edittext.getText().toString().equalsIgnoreCase("")) {
startTime_hour_int=Integer.parseInt(startTime_hour_edittext.getEditableText().toString());
}
登入後複製

情況三,由於進位不同:

題主要做一個進位轉換.並且限定範圍為30位的數(1073741823) 或(011111111111111111111111111111). 問題出現在試圖轉換1111111111111111111111111111Format為int型數值

if (checkNumber(input)) {
        try {
        number = Integer.parseInt(input);
        } catch (NumberFormatException ex) {
            log(ex.getMessage());
        }
    } else {
        toDecimal();
    }
登入後複製

這是檢查String的布林回傳值方法的程式碼.

private static boolean checkNumber(String input) {
    for (char c : input.toCharArray()) {
        if (!Character.isDigit(c)) {
            return false;
        }
    }

    return true;}
登入後複製

出現異常:

java.lang.NumberFormatException: For input string: "111111111111111111111111111111"
登入後複製

------原因分析------ --------------

因为 Integer.parseInt(String) 默认是十进制.

所以需要使用 Integer.parseInt(String, int) 并且指定要转换的n进制的数字的n。比如二进制是2.

------解决方案--------------------

int value = Integer.parseInt(input, 2);
登入後複製

更多编程相关知识,请访问:编程入门!!

以上是numberformatexception是什麼異常的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java中的OutOfMemoryError異常常見原因是什麼? Java中的OutOfMemoryError異常常見原因是什麼? Jun 25, 2023 pm 08:43 PM

Java是目前使用最廣泛的程式語言之一,但在使用Java開發應用程式時,很容易遇到「OutOfMemoryError」異常錯誤,這種錯誤經常會給開發者帶來一些挑戰。究竟什麼原因會導致Java中的OutOfMemoryError異常呢?接下來,我們就來詳細了解。記憶體洩漏(MemoryLeak)記憶體洩漏是指當一個物件無法被垃圾回收器回收時,就會導致記憶體洩漏

如何解決Java執行緒中斷逾時異常(ThreadInterruptedTimeoutExceotion) 如何解決Java執行緒中斷逾時異常(ThreadInterruptedTimeoutExceotion) Aug 18, 2023 pm 01:57 PM

如何解決Java執行緒中斷逾時例外(ThreadInterruptedTimeoutException)在Java多執行緒程式設計中,經常會遇到執行緒執行時間過長的情況。為了避免執行緒佔用過多的系統資源,我們通常會設定一個逾時時間,當執行緒執行時間超過逾時時間時,我們希望能夠中斷執行緒的執行。 Java中提供了線程中斷的機制,透過呼叫線程的interrupt()方法可以向線程

解決Java反射異常(ReflectiveOperationException)的方法 解決Java反射異常(ReflectiveOperationException)的方法 Aug 26, 2023 am 09:55 AM

解決Java反射異常(ReflectiveOperationException)的方法在Java開發中,反射(Reflection)是一種強大的機制,它允許程式在執行時間動態地取得和操作類別、物件、方法和屬性等。透過反射,我們可以實現一些靈活的功能,例如動態創建物件、呼叫私有方法、取得類別的註解等。然而,使用反射也會帶來一些潛在的風險和問題,其中之一就是反射異常(

NumberFormatException異常解決方法 NumberFormatException異常解決方法 Jul 26, 2023 am 10:26 AM

NumberFormatException異常解決方法:1、使用try-catch語句捕獲異常,可以將轉換函數放在try區塊中,並在catch區塊中處理異常情況;2、可以使用正規表示式驗證字串是否符合數值類型的格式要求,如果字串不符合要求,我們可以提前進行錯誤處理;3、使用靜態方法isDigit()驗證字符是否為數字,如果存在非數字字符,可以提前進行錯誤處理。

浪人崛起水池的異常任務攻略 浪人崛起水池的異常任務攻略 Mar 26, 2024 pm 08:06 PM

水池的異常是遊戲中一個支線任務,很多玩家想知道水池的異常任務怎麼完成,其實非常簡單,首先我們要掌握在水中拍攝的技術,才可以接取任務,調查惡臭味的來源,之後發現原來是水池底下有很多的屍體,具體內容一起來看看這篇浪人崛起水池的異常任務圖文攻略。浪人崛起水池的異常任務攻略1、和飯塚對話,學習在水中拍攝的技術。 2、前往下圖位置接取水池的異常任務。 3.來到任務地點和NPC對話,了解到附近的水池有一股惡臭味。 4、前往水池調查。 5.大概游到下圖位置,潛入到水下,會發現很多的屍體。 6.使用相機對屍體進行拍攝。 7

高效解決Java大文件讀取異常的實用技巧 高效解決Java大文件讀取異常的實用技巧 Feb 21, 2024 am 10:54 AM

有效率解決Java大檔案讀取異常的實用技巧,需要具體程式碼範例概述:當處理大型檔案時,Java可能面臨記憶體溢出、效能下降等問題。本文將介紹幾種高效解決Java大檔案讀取異常的實用技巧,並提供具體程式碼範例。背景:在處理大型檔案時,我們可能需要將檔案內容讀入記憶體進行處理,例如搜尋、分析、提取等操作。然而,當檔案較大時,通常會遇到以下問題:記憶體溢位:嘗試一次性將整個文

MIT最新力作:以GPT-3.5解決時間序列異常檢測問題 MIT最新力作:以GPT-3.5解決時間序列異常檢測問題 Jun 08, 2024 pm 06:09 PM

今天要為大家介紹一篇MIT上週發表的文章,使用GPT-3.5-turbo解決時間序列異常檢測問題,初步驗證了LLM在時間序列異常檢測的有效性。整個過程沒有進行finetune,直接使用GPT-3.5-turbo進行異常檢測,文中的核心是如何將時間序列轉換成GPT-3.5-turbo可辨識的輸入,以及如何設計prompt或pipeline讓LLM解決異常檢測任務。下面跟大家詳細介紹一下這篇工作。圖片論文標題:Largelanguagemodelscanbezero-shotanomalydete

C++ 函式異常與單測:確保程式碼健全性 C++ 函式異常與單測:確保程式碼健全性 May 03, 2024 am 09:18 AM

異常處理和單測是確保C++程式碼健全性的重要實務。異常透過try-catch區塊處理,當程式碼引發異常時會跳到catch區塊。單元測試可隔離程式碼測試,以驗證異常處理在不同情況下是否如預期運作。實戰案例:sumArray函數計算數組元素總和,並拋出異常以處理空輸入數組。單元測試可驗證函數在異常情況下的預期行為,如當數組為空時拋出std::invalid_argument異常。結論:透過利用異常處理和單測,我們可以處理異常情況、防止程式碼崩潰,並確保程式碼在異常情況下按預期運行。