how convert java string int tutorial with examples
Questo tutorial spiega i modi per convertire Java String in Integer utilizzando i metodi Integer.parseInt e Integer.ValueOf con esempi di codice:
Tratteremo i seguenti due metodi statici della classe Integer che vengono utilizzati per convertire Java String in valore int:
- Integer.parseInt ()
- Integer.valueOf ()
=> Controlla TUTTI i tutorial Java qui
Cosa imparerai:
- Conversione da stringa Java a Int
- Conclusione
Conversione da stringa Java a Int
Consideriamo uno scenario in cui dobbiamo eseguire una sorta di operazione aritmetica su un numero, ma questo valore numerico è disponibile sotto forma di stringa. Supponiamo che il numero venga recuperato come testo proveniente dal campo di testo di una pagina web o da un'area di testo di una pagina web.
In tale scenario, dobbiamo prima convertire questa stringa per recuperare i numeri in un formato intero.
Per esempio, consideriamo uno scenario in cui vogliamo aggiungere 2 numeri. Questi valori vengono recuperati come testo dalla tua pagina web come '300' e '200' e vogliamo eseguire un'operazione aritmetica su questi numeri.
Capiamolo con l'aiuto di un codice di esempio. Qui stiamo cercando di aggiungere 2 numeri '300' e '200' e di assegnarli alla variabile 'c'. Quando stampiamo 'c', ci aspettiamo che l'output su una console sia '500'.
package com.softwaretestinghelp; public class StringIntDemo{ public static void main(String() args) { //Assign text '300' to String variable String a='300'; //Assign text '200' to String variable String b='200'; //Add variable value a and b and assign to c String c=a+b; //print variable c System.out.println('Variable c Value --->'+c);//Expected output as 500 } } Here is the program Output : Variable c Value --->300200
Ma, nel programma precedente, l'output effettivo stampato sulla console è
'Valore c variabile -> 300200' .
piano di test di esempio per il test del software
Quale potrebbe essere la ragione per la stampa di questo output?
La risposta a questo è, quando abbiamo fatto a + b, sta usando l'operatore '+' come concatenazione. Quindi, in c = a + b; Java sta concatenando le stringhe aeb, ovvero sta concatenando due stringhe '300' e '200' e sta stampando '300200'.
Quindi, questo accade quando proviamo ad aggiungere due stringhe:
Allora, cosa si dovrebbe fare se vogliamo aggiungere questi due numeri?
Per questo, dobbiamo prima convertire queste stringhe in numeri e quindi eseguire un'operazione aritmetica su questi numeri. Per convertire Java String in int, possiamo utilizzare i seguenti metodi forniti dalla classe Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()
Vediamo questi metodi uno per uno in dettaglio.
# 1) Utilizzo del metodo Java Integer.parseInt ()
Il metodo parseInt () è fornito dalla classe Integer. La classe Integer è chiamata classe Wrapper poiché racchiude un valore del tipo primitivo int in un oggetto.
Diamo un'occhiata alla firma del metodo di seguito:
public static int parseInt (String str) genera NumberFormatException
public static Integer valueOf (String str) genera NumberFormatException
Questo è un metodo statico fornito dalla classe Integer che restituisce un oggetto di una classe Integer avente un valore che è specificato dall'oggetto String passato ad esso. Qui, l'interpretazione dell'argomento passato viene eseguita come numero intero decimale con segno.
È lo stesso dell'argomento passato al metodo parseInt (java.lang.String). Il risultato restituito è un oggetto di classe Integer che rappresenta il valore intero specificato da String. In parole semplici, il metodo valueOf () restituisce un oggetto Integer uguale al valore di
new Integer (Integer.parseInt (str))
In questo caso, il parametro 'str' è una stringa contenente la rappresentazione intera e il metodo restituisce un oggetto Integer contenente il valore rappresentato da 'str' nel metodo.
Questo metodo genera un'eccezione NumberFormatException quando la stringa non contiene un numero intero analizzabile.
Metodo Integer.parseInt () per stringhe senza segni
Proviamo a capire come utilizzare questo metodo Integer.parseInt () nello stesso programma Java che abbiamo visto nel nostro esempio precedente.
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert String to int Java program * using Integer.parseInt() method using String having decimal digits without * ASCII sign i.e. plus + or minus - * */ public class StringIntDemo { public static void main(String() args) { //Assign text '300' to String variable a String a='300'; //Pass a i.e.String “300” as a parameter to parseInt() //to convert String 'a' value to integer //and assign it to int variable x int x=Integer.parseInt(a); System.out.println('Variable x value --->'+x); //Assign text '200' to String variable b String b='200'; //Pass b i.e.String “200” as a parameter to parseInt() //to convert String 'b' value to integer //and assign it to int variable y int y=Integer.parseInt(b); System.out.println('Variable y value --->'+y); //Add integer values x and y i.e.z = 300+200 int z=x + y; //convert z to String just by using '+' operator and appending '' String c=z + ''; //Print String value of c System.out.println('Variable c value --->'+c); } }
Ecco l'output del programma:
Valore x variabile -> 300
Variabile e valore -> 200
Valore c variabile -> 500
Quindi, ora, siamo in grado di ottenere l'output desiderato, ovvero la somma dei due numeri rappresentati come testo convertendoli in valore int e quindi eseguendo un'operazione aggiuntiva su questi numeri.
Metodo Integer.parseInt () per stringhe con segni
Come visto nella descrizione del metodo Integer.parseInt () sopra, il primo carattere può essere un segno meno ASCII '-' per l'indicazione di un valore negativo o un segno più ASCII '+' per l'indicazione di un positivo valore. Proviamo lo stesso programma con un valore negativo.
Vediamo il programma di esempio con valori e segni come '+' e '-'.
Useremo i valori di stringa con segno come '+75' e '-75000' e li analizzeremo come interi e quindi li confronteremo per trovare un numero maggiore tra questi 2 numeri:
package com.softwaretestinghelp; /** * This class demonstrates sample code to convert string to int Java * program using Integer.parseInt() method * on string having decimal digits with ASCII signs i.e. plus + or minus - * @author * */ public class StringIntDemo1 { public static void main(String() args) { //Assign text '75' i.e.value with ‘+’ sign to string variable a String a='+75'; //Pass a i.e.String “+75” as a parameter to parseInt() //to convert string 'a' value to integer //and assign it to int variable x int x =Integer.parseInt(a); System.out.println('Variable x value --->'+x); //Assign text '-75000' i.e.value with ‘-’ sign to string variable b String b='-75000'; //Pass b i.e.String “-75000” as a parameter to parseInt() //to convert string 'b' value to integer //and assign it to int variable y int y = Integer.parseInt(b); System.out.println('Variable y value --->'+y); //Get higher value between int x and y using Math class method max() int maxValue = Math.max(x,y); //convert maxValue to string just by using '+' operator and appending '' String c = maxValue + ''; //Print string value of c System.out.println('Larger number is --->'+c); }
Ecco l'output del programma:
Valore x variabile -> 75
Variabile e valore -> - 75000
Il numero maggiore è -> 75
Metodo Integer.parseInt () per stringhe con zeri iniziali
In alcuni casi, abbiamo anche bisogno di operazioni aritmetiche sui numeri con gli zeri iniziali. Vediamo come convertire String con numero con zeri iniziali in valore int utilizzando il metodo Integer.parseInt ().
Per esempio, in alcuni sistemi software di dominio finanziario, è un formato standard avere un numero di conto o un importo con zeri iniziali. Ad esempio, nel seguente programma di esempio, stiamo calcolando l'importo a scadenza dell'importo del deposito fisso utilizzando il tasso di interesse e l'importo del deposito fisso.
Qui, l'importo viene specificato utilizzando gli zeri iniziali. Questi valori String con zeri iniziali vengono analizzati in valori interi utilizzando Integer.
metodo parseInt () come mostrato nel programma seguente:
package com.softwaretestinghelp; /** * This class demonstrates sample program to convert string with leading zeros to int java * using Integer.parseInt() method * * @author * */ public class StringIntDemo2{ public static void main(String() args) { //Assign text '00010000' i.e.value with leading zeros to string variable savingsAmount String fixedDepositAmount='00010000'; //Pass 0010000 i.e.String “0010000” as a parameter to parseInt() //to convert string '0010000' value to integer //and assign it to int variable x int fixedDepositAmountValue = Integer.parseInt(fixedDepositAmount); System.out.println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR'); //Assign text '6' to string variable interestRate String interestRate = '6'; //Pass interestRate i.e.String “6” as a parameter to parseInt() //to convert string 'interestRate' value to integer //and assign it to int variable interestRateVaue int interestRateValue = Integer.parseInt(interestRate); System.out.println('You have Fixed Deposit Interst Rate --->' + interestRateValue+'% INR'); //Calculate Interest Earned in 1 year tenure int interestEarned = fixedDepositAmountValue*interestRateValue*1)/100; //Calcualte Maturity Amount of Fixed Deposit after 1 year int maturityAmountValue = fixedDepositAmountValue + interestEarned; //convert maturityAmount to string using format()method. //Use %08 format specifier to have 8 digits in the number to ensure the leading zeroes String maturityAmount = String.format('%08d', maturityAmountValue); //Print string value of maturityAmount System.out.println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR'); } }
Ecco l'output del programma:
Hai un importo di deposito fisso -> 10000 INR
Hai un tasso di interesse sul deposito fisso -> 6% INR
L'importo del deposito fisso alla scadenza è -> 00010600 INR
Quindi, nel programma di esempio sopra, stiamo passando '00010000' al metodo parseInt () e stampiamo il valore.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');
Vedremo il valore visualizzato sulla console come Hai un importo di deposito fisso -> 10000 INR
Qui, durante la conversione in un valore intero, gli zeri iniziali vengono rimossi.
Quindi, abbiamo calcolato l'importo fisso della scadenza del deposito come valore intero '10600' e formattato il valore del risultato utilizzando l'identificatore di formato% 08 per recuperare gli zeri iniziali.
String maturityAmount = String. format ('%08d', maturityAmountValue);
Quando stampiamo il valore della stringa formattata,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');
Possiamo vedere l'output che viene stampato su console come L'importo del deposito fisso alla scadenza è -> 00010600 INR
NumberFormatException
Nella descrizione di Integer.parseInt () metodo, abbiamo anche visto un'eccezione lanciata dal metodo parseInt (), ad es. NumberFormatException.
Questo metodo genera un'eccezione, ad es. NumberFormatException quando la stringa non contiene un numero intero analizzabile.
Quindi, vediamo lo scenario in cui viene generata questa eccezione.
Vediamo il seguente programma di esempio per comprendere questo scenario. Questo programma richiede all'utente di inserire la percentuale ottenuta e restituisce il voto ricevuto. Per questo, analizza il valore String immesso dall'utente in un valore intero.
Package com.softwaretestinghelp; import java.util.Scanner; /** * This class demonstrates sample code to convert string to int Java * program using Integer.parseInt() method having string with non decimal digit and method throwing NumberFormatException * @author * */ public class StringIntDemo3{ private static Scanner scanner; public static void main(String() args){ //Prompt user to enter input using Scanner and here System.in is a standard input stream scanner = new Scanner(System.in); System.out.print('Please Enter the percentage you have scored:'); //Scan the next token of the user input as an int and assign it to variable precentage String percentage = scanner.next(); //Pass percentage String as a parameter to parseInt() //to convert string 'percentage' value to integer //and assign it to int variable precentageValue int percentageValue = Integer.parseInt(percentage); System.out.println('Percentage Value is --->' + percentageValue); //if-else loop to print the grade if (percentageValue>=75) { System.out.println('You have Passed with Distinction'); }else if(percentageValue>60) { System.out.println('You have Passed with Grade A'); }else if(percentageValue>50) { System.out.println('You have Passed with Grade B'); }else if(percentageValue>35) { System.out.println('You have Passed '); }else { System.out.println('Please try again '); } } }
Ecco l'output del programma:
Proviamo con 2 diversi valori di input inseriti dall'utente.
1. Con valore intero valido
Inserisci la percentuale che hai ottenuto: 82
Il valore percentuale è -> 82
Sei passato con distinzione
2. Con valore intero InValid
Inserisci la percentuale che hai ottenuto: 85a
Eccezione nel thread 'main' java.lang.NumberFormatException: per la stringa di input: '85a'
in java.lang.NumberFormatException.forInputString (origine sconosciuta)
in java.lang.Integer.parseInt (origine sconosciuta)
in java.lang.Integer.parseInt (origine sconosciuta)
su com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Quindi, come si vede nell'output del programma,
# 1) Quando l'utente immette un valore valido, ad esempio 82 come input, l'output che viene visualizzato sulla console è il seguente:
Il valore percentuale è -> 82
Sei passato con distinzione
# 2) Quando l'utente immette un valore non valido, ad esempio 85a come input, l'output visualizzato sulla console è il seguente:
Inserisci la percentuale che hai ottenuto: 85a
Eccezione nel thread 'main' java.lang.NumberFormatException: per la stringa di input: '85a'
in java.lang.NumberFormatException.forInputString (origine sconosciuta)
in java.lang.Integer.parseInt (origine sconosciuta)
in java.lang.Integer.parseInt (origine sconosciuta)
su com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException viene generata durante l'analisi 85a nel metodo Integer.parseInt () poiché '85a' ha il carattere 'a' che non è una cifra decimale né il segno ASCII '+' o '-' cioè '85a' non è analizzabile numero intero per il metodo Integer.parseInt ().
Quindi, questo era circa uno dei modi per convertire Java String in int. Vediamo l'altro modo in cui Java converte String in int, ovvero utilizzando il metodo Integer.valueOf ().
# 2) Utilizzo di Integer. metodo valueOf ()
Il metodo valueOf () è anche un metodo statico della classe Integer.
Diamo un'occhiata alla firma del metodo di seguito:
public static int parseInt (String str) genera NumberFormatException
Si tratta di un metodo statico fornito dalla classe Integer che restituisce un oggetto di un classInteger avente un valore specificato dall'oggetto String passato ad esso. Qui, l'interpretazione dell'argomento passato viene eseguita come numero intero decimale con segno.
È lo stesso dell'argomento passato al metodo parseInt (java.lang.String). Il risultato restituito è un oggetto di classe Integer che rappresenta il valore intero specificato da String. In parole semplici, il metodo valueOf () restituisce un oggetto Integer uguale al valore di nuovo Intero (Integer.parseInt (str))
Qui, il parametro 'str' è una stringa contenente la rappresentazione intera e il metodo restituisce un oggetto Integer che contiene il valore rappresentato da 'str' nel metodo. Questo metodo genera l'eccezione NumberFormatException quando la stringa non contiene un numero intero analizzabile.
Vediamo come utilizzare questo metodo Integer.valueOf ().
Di seguito è riportato un programma di esempio. Questo codice di esempio calcola la temperatura media di 3 giorni della settimana. Qui, per convertire la temperatura, i valori vengono assegnati come valore String a un valore intero. Per questa conversione da stringa a numero intero, proviamo a utilizzare il metodo Integer.valueOf ().
Package com.softwaretestinghelp; /** * This class demonstrates a sample program to convert string to integer in Java * using Integer.valueOf() method * on string having decimal digits with ASCII signs i.e.plus + or minus - * @author * */ public class StringIntDemo4 { public static void main(String() args) { //Assign text '-2' i.e.value with ‘-’ sign to string variable sundayTemperature String sundayTemperature= '-2'; //Pass sundayTemperature i.e.String “-2” as a parameter to valueOf() //to convert string 'sundayTemperature' value to integer //and assign it to Integer variable sundayTemperatureValue Integer sundayTemperatureValue = Integer.valueOf(sundayTemperature); System.out.println('Sunday Temperature value --->'+ sundayTemperatureValue); //Assign text '4' to string variable mondayTemperature String mondayTemperature = '4'; //Pass mondayTemperature i.e.String “4” as a parameter to valueOf() //to convert string 'mondayTemperature ' value to integer //and assign it to Integer variable mondayTemperature Integer mondayTemperatureValue = Integer.valueOf(mondayTemperature); System.out.println('Monday Temperature value --->'+ mondayTemperatureValue); //Assign text '+6' i.e.value with ‘+’ sign to string variable //tuesdayTemperature String tuesdayTemperature = '+6'; //Pass tuesdayTemperature i.e.String “+6” as a parameter to valueOf() //to convert string 'tuesdayTemperature' value to integer //and assign it to Integer variable tuesdayTemperature Integer tuesdayTemperatureValue = Integer.valueOf(tuesdayTemperature); System.out.println('Tuesday Temperature value --->'+ tuesdayTemperatureValue); //Calculate Average value of 3 days temperature //avgTEmp = (-2+4+(+6))/3 = 8/3 = 2 Integer averageTemperatureValue = (sundayTemperatureValue+mondayTemperatureValue +tuesdayTemperatureValue)/3; //convert z to string just by using '+' operator and appending '' String averageTemperature = averageTemperatureValue+''; //Print string value of x System.out.println('Average Temperature over 3 days --->'+averageTemperature); } }
Ecco l'output del programma:
Domenica Valore della temperatura -> - 2
Lunedì Valore della temperatura -> 4
Martedì Valore della temperatura -> 6
Temperatura media su 3 giorni -> 2
Esercizio: Se possiamo convertire i valori di stringa come visto sopra, possiamo provare le stringhe con un punto decimale
Per esempio, invece di '-2', possiamo provare '-2,5'?
Si prega di provare il codice di esempio sopra con il metodo parseInt () o valueOf () assegnando la stringa sundayTemperature = '-2.5';
Suggerimento: Leggere di nuovo la firma del metodo sui valori analizzabili.
Risposta: Se provi il programma di esempio sopra con String domenicaTemperatura = '-2.5, genererà NumberFormatException poiché i valori dell'argomento String per parseInt () e valueOf () sono ASCII più' + 'o meno' - 'segno e cifre decimali.
Quindi, ovviamente '.' Non è valido. Inoltre, poiché questi due metodi sono forniti dalla classe Integer, i valori a virgola mobile come '2.5' sarebbero valori non analizzabili per questi metodi.
Pertanto, abbiamo discusso entrambi i metodi della classe Integer per convertire una stringa in int in Java.
Domande frequenti sulla conversione di stringhe in Int in Java
Q # 1) Come posso convertire String in int in Java?
Risposta: In Java, la conversione da stringa a int può essere eseguita in due modi, ovvero utilizzando i seguenti metodi dei metodi della classe Integer:
- Integer.parseInt ()
- Integer.valueOf ()
D # 2) Come si analizza un numero intero?
Risposta: La classe Integer fornisce metodi statici che vengono utilizzati per analizzare il valore intero per convertire String in valore int, ad esempio parseInt () e valueOf ().
D # 3) Cos'è parseInt ()?
Risposta: parseInt () è un metodo statico fornito dalla classe Integer che viene utilizzata per convertire Java String in valore int dove il valore String viene passato come argomento e il valore intero viene restituito dal metodo.
Per esempio, int x = Integer.parseInt ('100') restituisce il valore int 100
D # 4) Che cos'è l'analisi in Java?
Risposta: L'analisi in Java è fondamentalmente la conversione del valore di un oggetto di un tipo di dati in un altro tipo di dati. Per esempio, Integer.valueOf (str) converte 'str', che è un oggetto di tipo di dati String, in un oggetto di tipo di dati Integer.
Conclusione
In questo tutorial, abbiamo esplorato come convertire String in int in Java utilizzando i seguenti metodi statici Integer della classe wrapper:
- Integer.parseInt ()
- Integer.valueOf ()
Abbiamo anche trattato il caso in cui NumberFormatException viene generata per un numero String non valido.
Ulteriore lettura = >> 8 metodi per convertire Integer in Sting in Java
=> Esplora la serie di formazione Java semplice qui
Lettura consigliata
- Java String con String Buffer e String Builder Tutorial
- Tutorial Java String | Metodi Java String con esempi
- Java Reverse String: tutorial con esempi di programmazione
- Tutorial sul metodo Java String contains () con esempi
- Metodo Java String length () con esempi
- Tutorial JAVA per principianti: oltre 100 tutorial video Java pratici
- Java Integer e Java BigInteger Class con esempi
- Metodo Java substring () - Tutorial con esempi