搜尋
首頁常見問題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

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

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具