JavaRush /Blog Java /Random-MS /Soalan dan Jawapan: Bagaimana untuk menukar String ke int...

Soalan dan Jawapan: Bagaimana untuk menukar String ke int dengan betul dalam Java?

Diterbitkan dalam kumpulan
Anggaran tahap pengetahuan yang diperlukan: pencarian Java Syntax dan sedikit Java Core.
Soalan dan Jawapan: Bagaimana untuk menukar String ke int dengan betul dalam Java?  - 1
Pada penghujung pencarian JavaRush pertama kami belajar tentang penukaran jenis. Dalam kuliah tahap 10, anda dapat melihat bahawa menukar intkepada Stringadalah sangat mudah, dan secara umum, hampir semua jenis primitif boleh ditukar kepada Stringtanpa 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 parseIntkelas Integer. Kaedah parseIntmesti menukar Stringkepada intdan membuang pengecualian NumberFormatExceptionjika 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 myStringialah 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 Stringkepada int, mengawal kemungkinan NumberFormatException:
public class JavaStringToIntExample
{
  public static void main (String[] args)
  {
    // String s = "fred"; // use this if you need to test the //exception below
String s = "100";

    try
    {
      // this is where String is converted to int
      int i = Integer.parseInt(s.trim());

      // display the value after conversion
      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 smenjadi 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 parseIntakan 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 Stringdan Integer:
  • Integer.toString (int i)digunakan untuk menukar intkepada rentetan Java.
  • Jika anda ingin menukar objek Stringkepada objek Integer(bukannya kelas primitif int), gunakan kaedah valueOf ()on-class Integerdan bukannya parseInt ().
  • Jika anda perlu menukar rentetan kepada medan Java primitif tambahan, gunakan kaedah seperti ini Long.parseLong ().
Dijawab oleh: Alice Watson
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION