Obiectele șir sunt reprezentate ca un șir de caractere.

Dacă ați lucrat în Java Swing, acesta are componente precum JTextField și JTextArea pe care le folosim pentru a obține intrarea noastră din GUI. Ne ia intrarea ca un șir.

Dacă vrem să facem un calculator simplu folosind Swing, trebuie să ne dăm seama cum să convertim un șir într-un număr întreg. Acest lucru ne conduce la întrebarea – cum putem converti un șir într-un număr întreg?

În Java, putem folosi Integer.valueOf() și Integer.parseInt() pentru a converti un șir într-un număr întreg.

1. Utilizați Integer.parseInt () pentru a converti un șir într-un întreg

Această metodă returnează șirul ca fișier tip primitiv int. Dacă șirul nu conține un număr întreg valid atunci va arunca un NumberFormatException.

Deci, de fiecare dată când convertim un șir într-un int, trebuie să avem grijă de această excepție plasând codul în blocul try-catch.

Să luăm în considerare un exemplu de conversie a unui șir într-un int folosind Integer.parseInt():

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

Să încercăm să rupem acest cod introducând un număr întreg nevalid:

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

După cum puteți vedea în codul de mai sus, am încercat să convertim 25T la un întreg. Aceasta nu este o intrare validă. Prin urmare, trebuie să arunce o excepție NumberFormatException.

Iată rezultatul codului de mai sus:

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)

Apoi, vom lua în considerare cum să convertim un șir într-un număr întreg folosind Integer.valueOf() metodă.

2. Utilizați Integer.valueOf () pentru a converti un șir într-un întreg

Această metodă returnează șirul ca fișier obiect întreg. Dacă te uiți la Documentație Java, Integer.valueOf() returnează un obiect întreg echivalent cu a new Integer(Integer.parseInt(s)).

Vom plasa codul nostru în blocul try-catch atunci când folosim această metodă. Să luăm în considerare un exemplu folosind Integer.valueOf() metodă:

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

Acum, să încercăm să rupem codul de mai sus introducând un număr întreg nevalid:

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

Similar cu exemplul anterior, codul de mai sus va genera o excepție.

Iată rezultatul codului de mai sus:

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)

De asemenea, putem crea o metodă pentru a verifica dacă șirul transmis este numeric sau nu înainte de a utiliza metodele menționate mai sus.

Am creat o metodă simplă pentru a verifica dacă șirul transmis este numeric sau nu.

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

Ieșirea este:

true
true

isNumeric() metoda ia un șir ca argument. Mai întâi verifică dacă este null sau nu. După aceea folosim matches() metoda pentru a verifica dacă conține cifre de la 0 la 9 și un caracter de punct.

Acesta este un mod simplu de a verifica valorile numerice. Puteți scrie sau căuta pe Google expresii regulate mai avansate pentru a captura numerice în funcție de cazul dvs. de utilizare.

Este o bună practică să verificați dacă șirul transmis este numeric sau nu înainte de a încerca să îl convertiți în întreg.

Mulțumesc că ai citit.

Postează imaginea de 🇸🇮 Janko Ferlič pe Unsplash

Vă puteți conecta cu mine pe Mediu.

Codificare fericită!