我需要解析標籤的值,以便它可以被存儲爲整數從Java字符串轉換爲int
JLabel lblSeatNo;
int seatNo;
seatNo = Integer.parseInt(lblSeatNo.getText());
它工作,我有方法使用的其他時間,但現在我得到一個數字格式異常,我不明白爲什麼。
如果與標籤可以改變的值會有所幫助,它的一般格式是這樣的:「A131」或「B504」
三江源。
我需要解析標籤的值,以便它可以被存儲爲整數從Java字符串轉換爲int
JLabel lblSeatNo;
int seatNo;
seatNo = Integer.parseInt(lblSeatNo.getText());
它工作,我有方法使用的其他時間,但現在我得到一個數字格式異常,我不明白爲什麼。
如果與標籤可以改變的值會有所幫助,它的一般格式是這樣的:「A131」或「B504」
三江源。
假設你想這是一個十六進制數字(即基數爲16),則必須提供基數,以您的通話parseInt - 如果你想十進制值
seatNo = Integer.parseInt(lblSeatNo.getText(), 16);
(如基地10),並跳過信,你可以做
seatNo = Integer.parseInt(lblSeatNo.getText().substring(1));
赫克號碼以十六進制數值坐席的人是誰? –
@ W.K.S正如他們在España所說的那樣;闕? –
座位號不意味着是十六進制,他們的意思是留作「A103」或其他任何,這些數據將被存儲在一個航班預訂對象存儲在一個LinkedList中,即時通訊想知道是否將座位號存儲在一個int是代表我的講座出現錯誤。 – Sqoh
嘗試int value = Integer.parseInt(hexString, 16);
如果你知道字符串表示將永遠是十六進制。您可能還想檢查相關方法的documentation。
取決於你想要什麼: 如果你只想解析數字(不包括a,b等),那麼你必須調用substring來移除該字母。 如果這封信是爲了在那裏爲十六進制數,那麼你可以撥打
的Integer.parseInt(hexNo,16)
從您的意見好像你想從座位標籤只提取數。但既然你說你還需要重新創建座位標籤,然後在你的對象中,你可能還想爲row
添加一個字符串,其中包含字母
所以你可以做這樣的事情(假設只有一個信)
int seatNo = Integer.parseInt(lblSeatNo.getText().substring(1));
String row = lblSeatNo.getText().subString(0,1);
然後,以獲取標籤再次
String label = row + seatNo;
你會如何轉換'A131'到'int'? –
A131或B504都不是有效數字! – gtgaxiola
如果您想將它們解析爲十六進制數字,只需精確基數。 'Integer.parseInt(lblSeatNo.getText(),16);',否則它將使用默認的基數爲10. –