Java string int-le - kuidas teisendada string täisarvuks

Stringiobjektid on tähemärkidena.

Kui olete töötanud Java Swingis, on sellel komponente nagu JTextField ja JTextArea, mida kasutame GUI-st sisendi saamiseks. See võtab meie sisendi stringina.

Kui tahame teha Swingi abil lihtsat kalkulaatorit, peame välja mõtlema, kuidas string stringideks teisendada täisarvuks. See viib meid küsimuseni - kuidas saaksime stringi teisendada täisarvuks?

Java, saame kasutada Integer.valueOf()ja Integer.parseInt()teisendada stringi täisarv.

1. Stringi teisendamiseks täisarvuks kasutage Integer.parseInt ()

See meetod tagastab stringi primitiivse tüübina int . Kui string ei sisalda kehtivat täisarvu, viskab see numbri FormFormatException.

Nii et iga kord, kui teisendame stringi int-ks, peame selle erandi eest hoolitsema, paigutades koodi try-catch-plokki.

Vaatame näite stringi teisendamiseks int-ks, kasutades järgmist Integer.parseInt():

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

Proovime selle koodi murda, sisestades kehtetu täisarv:

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

Nagu ülaltoodud koodist näha, oleme proovinud teisendada 25Ttäisarvuks. See pole kehtiv sisend. Seetõttu peab see viskama NumberFormatException.

Siin on ülaltoodud koodi väljund:

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)

Järgmisena kaalume, kuidas Integer.valueOf()meetodi abil string teisendada täisarvuks .

2. Stringi teisendamiseks täisarvuks kasutage Integer.valueOf ()

See meetod tagastab stringi täisobjektina . Kui vaatate Java dokumentatsiooni, Integer.valueOf()tagastab täisarvulise objekti, mis on samaväärne a-ga new Integer(Integer.parseInt(s)).

Selle meetodi kasutamisel paigutame oma koodi proovimiskatse plokki. Vaatleme Integer.valueOf()meetodi näidet :

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

Proovime nüüd ülaltoodud koodi murda, sisestades vale täisarvu:

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

Sarnaselt eelmisele näitele loob ülaltoodud kood erandi.

Siin on ülaltoodud koodi väljund:

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)

Enne ülalnimetatud meetodite kasutamist saame luua ka meetodi, et kontrollida, kas sisestatud string on numbriline või mitte.

Olen loonud lihtsa meetodi selle kontrollimiseks, kas sisestatud string on numbriline või mitte.

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.]+"); } }

Väljund on:

true true

isNumeric()Meetod võtab stringi argument. Kõigepealt kontrollib ta, kas see on nullvõi mitte. Pärast seda matches()kontrollime meetodit, kas see sisaldab numbreid 0 kuni 9 ja punktimärki.

See on lihtne viis arvväärtuste kontrollimiseks. Numbrite hõivamiseks võite kirjutada või otsida Google'ist täpsemaid regulaaravaldisi, sõltuvalt teie kasutusjuhtumist.

Enne täisarvuks teisendamist on parim tava kontrollida, kas sisestatud string on arvuline või mitte.

Täname lugemast.

Image Janko Ferlič postitas pildi Unsplashil

Võite minuga ühendust võtta Mediumis.

Head kodeerimist!