[英]store hex value (0x45E213) in an integer
在我的應用程序中,我使用轉換器從3個值> RGB顏色和Hex值創建。 我在運行時使用它在我的應用程序中設置漸變背景。
現在這是以下問題。 轉換器的結果是(String)
#45E213
,這不能存儲在整數中。 但是當你創建一個整數時
int hex = 0x45E213;
它確實工作正常,這不會給出錯誤。
現在我知道了這一點,我將#
替換為0x
,並嘗試將其從String轉換為Integer。
int hexToInt = new Integer("0x45E213").intValue();
但是現在我得到了numberFormatException
,因為在轉換時,它會不同意字符E
?
我怎么解決這個問題? 因為我真的需要它作為整數或Java / Eclipse不會在它的方法中使用它。
http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html
帶有字符串的Integer構造函數與帶有基數10的parseInt的行為相同。您可能希望String.parseInt帶有基數16。
Integer.parseInt("45E213", 16)
或者切斷0x
Integer.parseInt("0x45E213".substring(2), 16);
要么
Integer.parseInt("0x45E213".replace("0x",""), 16);
鮮為人知的Integer.decode(String)在這里可能很有用。 請注意,它也會以八進制為前導零,你可能不想要它,但如果你正在尋找便宜又開朗的東西......
int withHash = Integer.decode("#45E213");
System.out.println(Integer.toHexString(withHash));
int withZeroX = Integer.decode("0x45E213");
System.out.println(Integer.toHexString(withZeroX));
產量
45e213
45e213
此方法接受您的String,您可以使用Color.parseColor(String)
但您需要用#
替換0x
前綴
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.