logo

Stringa su int in Java

In Java, quando si opera su stringhe, ci sono momenti in cui è necessario convertire un numero rappresentato come stringa in un tipo intero. Di solito lo facciamo perché possiamo operare con un insieme ampio e flessibile di operazioni sulle stringhe. Il metodo generalmente utilizzato per convertire String in Integer in Java è analizzareInt () del Classe di stringhe .

In questo articolo vedremo come convertire una String in int in Java.

Stringa Java su int



Programma per convertire la stringa Java in int

Facciamo subito un esempio per abituarci al funzionamento del metodo parseInt() :

Giava




istanziando Java
// Java program to demonstrate working parseInt()> // Where No NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.parseInt(>'20'>);> >int> signedPositiveExample = Integer.parseInt(>'+20'>);> >int> signedNegativeExample = Integer.parseInt(>'-20'>);> >int> radixExample = Integer.parseInt(>'20'>,>16>);> >int> stringExample = Integer.parseInt(>'geeks'>,>29>);> >// Print commands on console> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }>

>

>

Produzione

20 20 -20 32 11670324>

ParseInt() Metodo in Java

Esistono due varianti di questo metodo:

  1. parseInt(Stringa): Questa funzione analizza l'argomento stringa come un intero decimale con segno.
  2. parseInt(String s, int radice): Questa funzione analizza l'argomento stringa come un intero con segno nella radice specificata dal secondo argomento.

Sintassi di parseInt

public static int   parseInt(String str);   public static int   parseInt(String str, int radix);>

Parametri

  • str: S tring che deve essere convertito in un numero intero.
  • radice: viene utilizzato durante l'analisi della stringa.

Tipo di reso

  • Entrambi i metodi convertono la stringa nel suo equivalente intero. L'unica differenza è quella del parametro radix. Il primo metodo può essere considerato con radice = 10 (Decimale).

Eccezione lanciata

  • NumberFormatException viene generato da questo metodo se si verifica una delle seguenti situazioni.

Ricorda alcuni punti chiave associati a entrambe le varianti:

  1. La stringa può essere nulla o di lunghezza zero
  2. Il valore rappresentato dalla stringa non è un valore di tipo int
  3. Specificamente per la variante parseInt(String s, int radix) della funzione:
    • La radice del secondo argomento è inferiore a Character.MIN_RADIX o maggiore di Character.MAX_RADIX
    • Qualsiasi carattere della stringa non è una cifra della radice specificata, ad eccezione del fatto che il primo carattere può essere un segno meno '-' ('u002D') o un segno più '+' ('u002B') a condizione che la stringa sia più lungo della lunghezza 1
  4. Se la tua stringa ha zeri iniziali, il metodo parseInt() li ignorerà.

Casi di metodo parseInt()

Prendiamo uno snippet di codice casuale per comprendere meglio le illustrazioni.

Caso 1: parseInt(20, 16)

restituisce 32 , (2)*16^1 + (0)*16^0 = 32

Caso 2: parseInt(2147483648, 10)

lancia una NumberFormatException

Caso 3: parseInt(99, 8)

lancia una NumberFormatException
Motivo: 9 non è una cifra accettata del sistema numerico ottale

Caso 4: parseInt(geek, 28)

lancia una NumberFormatException

Caso 5: parseInt(geeks, 29)

restituisce 11670324, Motivo: Il sistema numerico in base 29 può avere le cifre da 0 a 9 seguite dai caratteri a,b,c… fino a s

Caso 6: parseInt(geeksforgeeks, 29)

lancia una NumberFormatException come Motivo: il risultato non è un numero intero.

Eccezioni del formato numero del metodo parseInt()

Eccezioni causate dal metodo parseInt() menzionato di seguito:

Giava




emoji di mela su Android
// Java Program to Demonstrate Working of parseInt() Method> // Where NumberFormatException is Thrown> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// NumberFormatException> >String invalidArguments =>''>;> > >// invalidArguments Error empty string> >// passed> >int> emptyString> >= Integer.parseInt(invalidArguments);> > >// The Converted Intger is out of bound> >// Too large to be called Integer> >int> outOfRangeOfInteger> >= Integer.parseInt(>'geeksforgeeks'>,>29>);> > >// Domain Number System> >int> domainOfNumberSystem> >= Integer.parseInt(>'geeks'>,>28>);> >// Print commands on console> >System.out.println(emptyString);> >System.out.println(outOfRangeOfInteger);> >System.out.println(domainOfNumberSystem);> >}> }>

>

>

Produzione

Allo stesso modo, possiamo convertire la stringa in qualsiasi altro tipo di dati primitivo:

  1. analizzareLong(): analizza la stringa in Long
  2. parseDouble(): analizza la stringa in modo double Se vogliamo convertire la stringa in un numero intero senza usare parseInt() , possiamo usare valore di() metodo . Ha anche due varianti simili a parseInt()
  3. Differenza tra parseInt() e valueOf(): parseInt() analizza la stringa e restituisce il tipo intero primitivo. Tuttavia, valueOf() restituisce un oggetto intero.

Nota: valueOf() utilizza parseInt() internamente per convertire in numero intero.

Un altro approccio per convertire una stringa in numero intero

Oltre al metodo parseInt() in Java esiste un altro metodo per la conversione di String in Integer. Di seguito è riportata l'implementazione del metodo valueOf()

metodo valoreOf()

Il metodo Integer.valueOf() converte una String in un oggetto Integer. Cerchiamo di capirlo con un esempio.

ciclo for java

Di seguito è riportata l'implementazione del metodo sopra:

Giava




// Java Program to Demonstrate> // Working of valueOf() Method> // Main class> public> class> GFG {> >// Main driver method> >public> static> void> main(String args[])> >{> >// Custom wide-varied inputs to illustrate> >// usage of valueOf() method> >int> decimalExample = Integer.valueOf(>'20'>);> >int> signedPositiveExample = Integer.valueOf(>'+20'>);> >int> signedNegativeExample = Integer.valueOf(>'-20'>);> >int> radixExample = Integer.valueOf(>'20'>,>16>);> >int> stringExample = Integer.valueOf(>'geeks'>,>29>);> >// Print statements> >System.out.println(decimalExample);> >System.out.println(signedPositiveExample);> >System.out.println(signedNegativeExample);> >System.out.println(radixExample);> >System.out.println(stringExample);> >}> }>

>

>

Produzione

20 20 -20 32 11670324>