Anggaran tahap pengetahuan yang diperlukan: pencarian Java Syntax dan sedikit Java Core.
Pada penghujung pencarian JavaRush pertama kami belajar tentang penukaran jenis. Dalam kuliah tahap 10, anda dapat melihat bahawa menukar int
kepada String
adalah sangat mudah, dan secara umum, hampir semua jenis primitif boleh ditukar kepada String
tanpa masalah.
int x = 5;
String text = "X=" + x;
Juga, mereka yang telah menyelesaikan tahap 10 pencarian Java Syntax tahu bahawa adalah mustahil untuk menukar rujukan kepada nombor kepada rujukan kepada rentetan. Jadi apakah cara terbaik untuk menukar rentetan kepada integer primitif? Adalah lebih baik untuk melakukan ini menggunakan kaedah parseInt
kelas Integer
. Kaedah parseInt
mesti menukar String
kepada int
dan membuang pengecualian NumberFormatException
jika rentetan tidak boleh ditukar kepada jenis int
.
Contoh
Baris asas yang menukar rentetan kepada integer:
int i = Integer.parseInt (myString);
Jika rentetan yang dilambangkan oleh pembolehubah myString
ialah integer yang sah, seperti "1", "200", Java akan menukarnya secara senyap kepada jenis data primitif int
. Jika atas sebab tertentu ini gagal, tindakan sedemikian mungkin membuang pengecualian NumberFormatException
, jadi untuk program berfungsi dengan betul untuk sebarang rentetan, kami memerlukan lebih sedikit kod. Program yang menunjukkan kaedah menukar Java String
kepada int
, mengawal kemungkinan NumberFormatException
:
public class JavaStringToIntExample
{
public static void main (String[] args)
{
String s = "100";
try
{
int i = Integer.parseInt(s.trim());
System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
Perbincangan
Apabila anda mengkaji contoh di atas, anda akan melihat bahawa kaedah Integer.parseInt (s.trim ())
digunakan untuk menukar rentetan s
menjadi integer i
, dan ini berlaku dalam baris kod berikut:
int i = Integer.parseInt (s.trim ())
Tetapi kadangkala menukar rentetan kepada nombor tidak akan berfungsi. Dalam contoh kami, rentetan sedemikian ialah nama fred. Kita boleh bercakap tentang kod di mana huruf ditulis pada komputer, tetapi, secara rasmi, fred bukanlah nombor, dan lebih baik untuk meninggalkannya sebagai rentetan. Program kami direka bentuk supaya jika anda cuba menukar "fred" kepada nombor, proses itu Integer parseInt
akan membuang pengecualian NumberFormatException
, yang mesti anda kendalikan dalam blok try / catch
. Dalam kes ini, anda tidak perlu menggunakan kaedah trim ()
kelas String
, tetapi dalam pengaturcaraan sebenar anda harus menggunakannya. Jadi kami menunjukkannya kepada anda. Memandangkan topik ini telah muncul, berikut ialah beberapa "petunjuk" mengenai topik kelas String
dan Integer
:
Integer.toString (int i)
digunakan untuk menukar int
kepada rentetan Java.
- Jika anda ingin menukar objek
String
kepada objek Integer
(bukannya kelas primitif int
), gunakan kaedah valueOf ()
on-class Integer
dan bukannya parseInt ()
.
- Jika anda perlu menukar rentetan kepada medan Java primitif tambahan, gunakan kaedah seperti ini
Long.parseLong ()
.
Dijawab oleh: Alice Watson
GO TO FULL VERSION