Java-merkkijono int - kuinka muuntaa merkkijono kokonaislukuksi

Merkkijono-objektit esitetään merkkijonona.

Jos olet työskennellyt Java Swingissä, siinä on komponentteja, kuten JTextField ja JTextArea, joita käytämme saadaksemme syötteemme käyttöliittymästä. Se vie syötteemme merkkijonona.

Jos haluamme tehdä yksinkertaisen laskimen Swingin avulla, meidän on selvitettävä, kuinka merkkijono muunnetaan kokonaisluvuksi. Tämä johtaa meidät kysymykseen - kuinka voimme muuntaa merkkijonon kokonaisluvuksi?

Java-ohjelmassa voimme käyttää Integer.valueOf()ja Integer.parseInt()muuntaa merkkijonon kokonaisluvuksi.

1. Muunna merkkijono kokonaisluvuksi Integer.parseInt (): n avulla

Tämä menetelmä palauttaa merkkijonon primitiiviseksi tyypiksi int . Jos merkkijono ei sisällä kelvollista kokonaislukua, se heittää NumberFormatExceptionin.

Joten joka kerta, kun muunnamme merkkijonon int-arvoksi, meidän on huolehdittava tästä poikkeuksesta sijoittamalla koodi try-catch-lohkoon.

Tarkastellaan esimerkkiä merkkijonon muuntamisesta intiksi käyttämällä Integer.parseInt():

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

Yritetään rikkoa tämä koodi syöttämällä virheellinen kokonaisluku:

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

Kuten yllä olevasta koodista näet, olemme yrittäneet muuntaa 25Tkokonaisluvuksi. Tämä ei ole kelvollinen syöte. Siksi sen on heitettävä NumberFormatException.

Tässä on yllä olevan koodin lähtö:

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)

Seuraavaksi pohditaan, kuinka merkkijono voidaan muuntaa kokonaisluvuksi Integer.valueOf()menetelmällä.

2. Muunna merkkijono kokonaisluvuksi Integer.valueOf (): n avulla

Tämä menetelmä palauttaa merkkijonon kokonaislukuobjektina . Jos tarkastelet Java-dokumentaatiota, Integer.valueOf()palauttaa kokonaislukuobjektin, joka vastaa a: ta new Integer(Integer.parseInt(s)).

Sijoitamme koodin try-catch-lohkoon käytettäessä tätä menetelmää. Tarkastellaan esimerkkiä Integer.valueOf()menetelmällä:

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

Yritetään nyt rikkoa yllä oleva koodi syöttämällä virheellinen kokonaisluku:

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

Kuten edellisessä esimerkissä, yllä oleva koodi aiheuttaa poikkeuksen.

Tässä on yllä olevan koodin lähtö:

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)

Voimme myös luoda menetelmän tarkistaa, onko syötetty merkkijono numeerinen vai ei, ennen kuin käytämme edellä mainittuja menetelmiä.

Olen luonut yksinkertaisen menetelmän tarkistamaan, onko syötetty merkkijono numeerinen vai ei.

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

Tuotos on:

true true

isNumeric()Menetelmässä otetaan merkkijonon argumenttina. Ensin se tarkistaa, onko se nullvai ei. Sen jälkeen käytämme matches()menetelmää tarkistamaan, sisältääkö se numeroita 0–9 ja pistemerkin.

Tämä on yksinkertainen tapa tarkistaa numeeriset arvot. Voit kirjoittaa tai etsiä Googlesta kehittyneempiä säännöllisiä lausekkeita, jotta voit tallentaa numeroita käyttötapauksestasi riippuen.

On parasta tarkistaa, onko syötetty merkkijono numeerinen vai ei, ennen kuin yrität muuntaa sen kokonaislukuksi.

Kiitos, että luit.

Lähetä kuvan kirjoittanut ?? Janko Ferlič Unsplash-kansioon

Voit olla yhteydessä minuun Mediumissa.

Hyvää koodausta!