Java String to Int - Cara Menukar String ke Integer

Objek rentetan dilambangkan sebagai rentetan watak.

Sekiranya anda pernah bekerja di Java Swing, ia memiliki komponen seperti JTextField dan JTextArea yang kami gunakan untuk mendapatkan input dari GUI. Ia memerlukan input kami sebagai rentetan.

Sekiranya kita ingin membuat kalkulator sederhana menggunakan Swing, kita perlu mengetahui cara menukar rentetan menjadi bilangan bulat. Ini membawa kita kepada persoalan - bagaimana kita dapat mengubah rentetan menjadi bilangan bulat?

Di Jawa, kita dapat menggunakan Integer.valueOf()dan Integer.parseInt()mengubah string menjadi bilangan bulat.

1. Gunakan Integer.parseInt () untuk Menukar String ke Integer

Kaedah ini mengembalikan rentetan sebagai int primitif jenis . Sekiranya rentetan tidak mengandungi bilangan bulat yang sah maka ia akan membuang NumberFormatException.

Oleh itu, setiap kali kita menukar rentetan ke int, kita harus menjaga pengecualian ini dengan meletakkan kod di dalam blok try-catch.

Mari pertimbangkan contoh menukar rentetan ke int menggunakan Integer.parseInt():

 String str = "25"; try{ int number = Integer.parseInt(str); System.out.println(number); // output = 25 } catch (NumberFormatException ex){ ex.printStackTrace(); }

Mari cuba pecahkan kod ini dengan memasukkan bilangan bulat yang tidak sah:

 String str = "25T"; try{ int number = Integer.parseInt(str); System.out.println(number); } catch (NumberFormatException ex){ ex.printStackTrace(); }

Seperti yang anda lihat dalam kod di atas, kami telah mencuba untuk menukar 25Tmenjadi bilangan bulat. Ini bukan input yang sah. Oleh itu, ia mesti membuang NumberFormatException.

Inilah keluaran kod di atas:

java.lang.NumberFormatException: For input string: "25T" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.parseInt(Integer.java:615) at OOP.StringTest.main(StringTest.java:51)

Seterusnya, kita akan mempertimbangkan cara menukar rentetan ke bilangan bulat menggunakan Integer.valueOf()kaedah.

2. Gunakan Integer.valueOf () untuk Menukar String ke Integer

Kaedah ini mengembalikan rentetan sebagai objek integer . Sekiranya anda melihat dokumentasi Java, Integer.valueOf()mengembalikan objek integer yang setara dengan a new Integer(Integer.parseInt(s)).

Kami akan meletakkan kod kami di dalam blok try-catch ketika menggunakan kaedah ini. Mari kita pertimbangkan satu contoh menggunakan Integer.valueOf()kaedah:

 String str = "25"; try{ Integer number = Integer.valueOf(str); System.out.println(number); // output = 25 } catch (NumberFormatException ex){ ex.printStackTrace(); }

Sekarang, mari cuba pecahkan kod di atas dengan memasukkan nombor integer yang tidak sah:

 String str = "25TA"; try{ Integer number = Integer.valueOf(str); System.out.println(number); } catch (NumberFormatException ex){ ex.printStackTrace(); }

Sama seperti contoh sebelumnya, kod di atas akan memberikan pengecualian.

Inilah keluaran kod di atas:

java.lang.NumberFormatException: For input string: "25TA" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:580) at java.lang.Integer.valueOf(Integer.java:766) at OOP.StringTest.main(StringTest.java:42)

Kami juga dapat membuat suatu kaedah untuk memeriksa apakah rentetan yang dilampirkan adalah berangka atau tidak sebelum menggunakan kaedah yang disebutkan di atas.

Saya telah membuat kaedah mudah untuk memeriksa sama ada rentetan masuk adalah berangka atau tidak.

public class StringTest { public static void main(String[] args) { String str = "25"; String str1 = "25.06"; System.out.println(isNumeric(str)); System.out.println(isNumeric(str1)); } private static boolean isNumeric(String str){ return str != null && str.matches("[0-9.]+"); } }

Keluarannya adalah:

true true

The isNumeric()Cara mengambil rentetan sebagai hujah. Mula-mula ia memeriksa sama ada betul nullatau tidak. Selepas itu kami menggunakan matches()kaedah untuk memeriksa sama ada ia mengandungi angka 0 hingga 9 dan watak titik.

Ini adalah kaedah mudah untuk memeriksa nilai angka. Anda boleh menulis atau mencari Google untuk ungkapan biasa yang lebih maju untuk menangkap angka bergantung pada kes penggunaan anda.

Merupakan amalan terbaik untuk memeriksa sama ada rentetan yang disertakan berangka atau tidak sebelum cuba menukarnya menjadi bilangan bulat.

Terima kasih kerana membaca.

Hantar gambar oleh ?? Janko Ferlič di Unsplash

Anda boleh berhubung dengan saya di Medium.

Selamat Pengkodan!