[英]Can an integer always be parsed as a long?
我有一個Java中的字符串列表,正在寫入文本文件。 這些字符串都標有一個類型 - 在這種情況下,我感興趣的是包含long
s和int
的字符串。 我想在寫這些字符串之前將它們轉換回數字類型,但我想盡量減少代碼重復。 我計划使用Long.parseLong()
解析標記為整數或長整數的每個字符串。
我的問題是:有沒有任何情況下有效整數不會解析為長? 我想不出任何東西(除了可能是“1000L”或其他一些),但我在這些事情上的經驗告訴我,我經常會有細微差別。
是的,整數總是可以轉換成長整數,但是長整數總是被轉換為整數。
int實際上是一個4字節的整數,long是8字節。 所以long給你一個int多4個字節。
Long.parseLong("1000L")
導致NumberFormatException - 它接受字符串編碼的數值,不一定是Java數字文字(盡管有很大的重疊)。
因為Long.parseLong
完全包含Integer.parseInt
,因為int
的值是long
值的正確子集。
快樂的編碼。
這應該沒問題,因為整數是多頭的子集。
每個可能的int
值都可以存儲在long
或double
(或BigInteger)中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.