Java String u Int - Kako pretvoriti niz u cijeli broj

String objekti su predstavljeni kao niz znakova.

Ako ste radili u Java Swingu, on ima komponente poput JTextField i JTextArea koje koristimo za dobivanje podataka iz GUI-ja. Naš unos uzima kao niz.

Ako želimo napraviti jednostavni kalkulator pomoću Swinga, moramo shvatiti kako pretvoriti niz u cijeli broj. To nas dovodi do pitanja - kako možemo pretvoriti niz u cijeli broj?

U Javi možemo koristiti Integer.valueOf()i Integer.parseInt()za pretvaranje niza u cijeli broj.

1. Upotrijebite Integer.parseInt () za pretvaranje niza u cijeli broj

Ova metoda vraća niz kao primitivni tip int . Ako niz ne sadrži valjani cijeli broj, izbacit će NumberFormatException.

Dakle, svaki put kada pretvorimo niz u int, moramo se pobrinuti za ovu iznimku postavljanjem koda unutar bloka try-catch.

Razmotrimo primjer pretvaranja niza u int koristeći Integer.parseInt():

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

Pokušajmo razbiti ovaj kôd unošenjem neispravnog cijelog broja:

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

Kao što vidite u gornjem kodu, pokušali smo pretvoriti 25Tu cijeli broj. Ovo nije valjani unos. Stoga mora izbaciti NumberFormatException.

Evo rezultata gornjeg koda:

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)

Dalje, razmotrit ćemo kako pretvoriti niz u cijeli broj pomoću Integer.valueOf()metode.

2. Upotrijebite Integer.valueOf () za pretvaranje niza u cijeli broj

Ova metoda vraća niz kao cjelobrojni objekt . Ako pogledate Java dokumentaciju, Integer.valueOf()vraća cjelobrojni objekt koji je ekvivalentan a new Integer(Integer.parseInt(s)).

Kad koristimo ovu metodu, kôd ćemo smjestiti unutar bloka try-catch. Razmotrimo primjer pomoću Integer.valueOf()metode:

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

Pokušajmo sada razbiti gornji kod unosom neispravnog cijelog broja:

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

Slično prethodnom primjeru, gornji kod će izbaciti iznimku.

Evo rezultata gornjeg koda:

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)

Također možemo stvoriti metodu za provjeru je li prosljeđeni niz numerički ili ne prije korištenja gore spomenutih metoda.

Stvorio sam jednostavnu metodu za provjeru je li prosljeđeni niz numerički ili nije.

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

Izlaz je:

true true

isNumeric()Metoda uzima niz kao argument. Prvo provjerava je li nullili nije. Nakon toga matches()metodom provjeravamo sadrži li znamenke od 0 do 9 i točku.

Ovo je jednostavan način provjere numeričkih vrijednosti. Možete pisati ili pretraživati ​​Google za naprednije regularne izraze kako biste uhvatili brojke, ovisno o vašem slučaju upotrebe.

Najbolja je praksa provjeriti je li prosljeđeni niz numerički ili ne prije nego što ga pokušate pretvoriti u cijeli broj.

Hvala na čitanju.

Post image by ?? Janko Ferlič on Unsplash

Možete se povezati sa mnom na Medium.

Sretno kodiranje!