Nuovo

Come convertire stringhe in numeri e viceversa in Java

Come convertire stringhe in numeri e viceversa in Java

In genere in un'interfaccia utente grafica, ci saranno campi di testo che si aspettano che l'utente inserisca un valore numerico. Questo valore numerico finirà in un oggetto String che non aiuta davvero il tuo programma se vuoi fare un po 'di aritmetica. Fortunatamente, ci sono classi wrapper che forniscono metodi per convertire quei valori String in numeri e la classe String ha un metodo per riconvertirli.

Classi wrapper

I tipi di dati primitivi che si occupano di numeri (ovvero byte, int, double, float, long e short) hanno tutti equivalenti di classe. Queste classi sono note come classi wrapper in quanto prendono un tipo di dati primitivo e lo circondano con la funzionalità di una classe. Ad esempio, la classe Double avrà un doppio valore come dati e fornirà metodi per manipolarlo.

Tutte queste classi wrapper hanno un metodo chiamato valueOf. Questo metodo accetta una stringa come argomento e restituisce un'istanza della classe wrapper. Ad esempio, supponiamo di avere una stringa con il valore di dieci:

Numero stringa = "10";

Avere questo numero come stringa non ci serve, quindi usiamo la classe Integer per convertirlo in un oggetto Integer:

Numero intero convertitoNumero = Integer.valueOf (numero);

Ora il numero può essere usato come numero e non come stringa:

converterNumber = ConvertNumber + 20;

Puoi anche fare in modo che la conversione vada direttamente a un tipo di dati primitivo:

int convertNumber = Integer.valueOf (number) .intValue ();

Per altri tipi di dati primitivi, basta inserire la classe wrapper corretta: byte, intero, doppio, float, lungo corto.

Nota: È necessario assicurarsi che la stringa possa essere analizzata nel tipo di dati appropriato. In caso contrario, si verificherà un errore di runtime. Ad esempio, cercando di convertire "dieci" in un numero intero:

Numero stringa = "dieci";
int convertNumber = Integer.valueOf (number) .intValue ();

produrrà una NumberFormatException perché il compilatore non ha idea che "dieci" dovrebbe essere 10.

Più sottilmente lo stesso errore si verificherà se si dimentica che un 'int' può contenere solo numeri interi:

Numero stringa = "10.5";
int convertNumber = Integer.valueOf (number) .intValue ();

Il compilatore non troncherà il numero, penserà solo che non si adatta a un 'int' e che è ora di lanciare un NumberFormatException.

Conversione di numeri in stringhe

Fare un numero in una stringa segue lo stesso tipo di modello della classe String ha anche un metodo valueOf. Può prendere uno qualsiasi dei numeri di tipo di dati primitivi come argomento e produrre una stringa:

int numberTwenty = 20;

String convert = String.valueOf (numberTwenty);

che mette "20" come valore String di coverted.

oppure puoi usare il metodo toString di una qualsiasi delle classi wrapper:

String convertito = Integer.toString (numberTwenty);

Il metodo toString è comune a tutti i tipi di oggetto, il più delle volte è solo una descrizione dell'oggetto. Per le classi wrapper, questa descrizione è il valore effettivo che contengono. In questa direzione, la conversione è un po 'più robusta. Se si dovesse usare la classe Double anziché l'Integer:

String convertita = Double.toString (numberTwenty);

il risultato non causerebbe un errore di runtime. La variabile convertita conterrebbe la stringa "20.0".

C'è anche un modo più sottile per convertire i numeri quando si stanno concatenando le stringhe. Se una stringa dovesse essere costruita come:

String aboutDog = "Il mio cane ha" + numberTwenty + "anni.";

la conversione del numero intTwenty viene eseguita automaticamente.

Guarda il video: Tutorial 22 - Maiuscolo e minuscolo di stringhe 1 di 2 Java (Luglio 2020).