how convert java string int tutorial with examples
Este tutorial explica as maneiras de converter Java String em Integer usando os métodos Integer.parseInt e Integer.ValueOf com exemplos de código:
Abordaremos os seguintes dois métodos estáticos da classe Integer que são usados para converter String Java em valor int:
- Integer.parseInt ()
- Integer.valueOf ()
=> Verifique TODOS os tutoriais Java aqui
O que você aprenderá:
- Java String para Conversão Int
- Conclusão
Java String para Conversão Int
Vamos considerar um cenário, onde temos que realizar algum tipo de operação aritmética em um número, mas este valor numérico está disponível na forma de uma String. Digamos que o número esteja sendo recuperado como um texto proveniente do campo de texto de uma página da web ou de uma área de texto de uma página da web.
Em tal cenário, primeiro temos que converter esta String para recuperar os números em um formato inteiro.
Por exemplo, vamos considerar um cenário onde queremos adicionar 2 números. Esses valores são recuperados como texto de sua página da web como “300” e “200” e queremos realizar uma operação aritmética com esses números.
Vamos entender isso com a ajuda de um código de amostra. Aqui, estamos tentando adicionar 2 números '300' e '200' e atribuí-los à variável 'c'. Quando imprimimos 'c', esperamos a saída em um console como “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 Mas, no programa acima, a saída real impressa no console é
‘Variable c Value -> 300200’ .
como dividir string por caractere python
Qual poderia ser o motivo da impressão dessa saída?
A resposta para isso é, quando fizemos a + b, ele está usando o operador ‘+’ como concatenação. Então, em c = a + b; Java está concatenando as String aeb, ou seja, está concatenando duas strings '300' e '200' e imprimindo '300200'.
Então, isso está acontecendo quando tentamos adicionar duas strings:

Então, o que deve ser feito se quisermos somar esses dois números?
Para isso, primeiro precisamos converter essas strings em números e, em seguida, realizar uma operação aritmética com esses números. Para converter Java String em int, podemos usar os seguintes métodos fornecidos pela classe Java Integer.
- Integer.parseInt ()
- Integer.valueOf ()

Vamos ver esses métodos um por um em detalhes.
# 1) Usando o método Java Integer.parseInt ()
O método parseInt () é fornecido pela classe Integer. A classe Integer é chamada de classe Wrapper, pois envolve um valor do tipo primitivo int em um objeto.
Vamos dar uma olhada na assinatura do método abaixo:
public static int parseInt (String str) lança NumberFormatException
public static Integer valueOf (String str) lança NumberFormatException
Este é um método estático fornecido pela classe Integer que retorna um objeto de uma classe Integer com um valor que é especificado pelo objeto String passado a ela. Aqui, a interpretação do argumento passado é feita como um inteiro decimal com sinal.
Este é o mesmo que o argumento passado para o método parseInt (java.lang.String). O resultado retornado é um objeto da classe Integer que representa o valor inteiro especificado pela String. Em palavras simples, o método valueOf () retorna um objeto Integer igual ao valor de
new Integer (Integer.parseInt (str))
Aqui, o parâmetro ‘str’ é uma String contendo a representação inteira e o método retorna um objeto Integer que contém o valor representado por ‘str’ no método.
Este método lança uma exceção NumberFormatException quando a String não contém um inteiro analisável.
Método Integer.parseInt () para string sem sinais
Vamos tentar entender como usar este método Integer.parseInt () no mesmo programa Java que vimos em nosso exemplo anterior.
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); } }Aqui está o resultado do programa:
Valor da variável x -> 300
Variável e valor -> 200
Valor da variável c -> 500
Portanto, agora, podemos obter a saída desejada, ou seja, a soma dos dois números representados como texto, convertendo-os em valor int e, em seguida, executando uma operação adicional nesses números.
Método Integer.parseInt () para string com sinais
Conforme visto na descrição do método Integer.parseInt () acima, o primeiro caractere pode ser um sinal menos ASCII '-' para a indicação de um valor negativo ou um sinal ASCII mais '+' para a indicação de um valor positivo valor. Vamos tentar o mesmo programa com um valor negativo.
Vamos ver o programa de exemplo com valores e sinais como ‘+’ e ‘-‘.
Usaremos os valores de string com sinal como “+75” e “-75000” e os analisaremos em um número inteiro e, em seguida, compararemos para encontrar um número maior entre esses 2 números:
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); } Aqui está o resultado do programa:
Valor da variável x -> 75
Variável e valor -> - 75.000
O número maior é -> 75
Método Integer.parseInt () para string com zeros à esquerda
Em alguns casos, também precisamos ter operações aritméticas nos números com zeros à esquerda. Vamos ver como converter String com número com zeros à esquerda em valor int usando o método Integer.parseInt ().
Por exemplo, em alguns sistemas de software de domínio financeiro, é um formato padrão ter um número de conta ou valor com zeros à esquerda. Como, no programa de exemplo a seguir, estamos calculando o valor do vencimento do valor do depósito fixo usando a taxa de juros e o valor do depósito fixo.
Aqui, o valor é especificado usando zeros à esquerda. Esses valores de String com zeros à esquerda são analisados em valores inteiros usando Integer.
método parseInt () conforme visto no programa abaixo:
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'); } }Aqui está o resultado do programa:
Você tem valor de depósito fixo -> 10.000 INR
Você tem taxa de juros fixa de depósito -> 6% INR
Seu valor de depósito fixo no vencimento é -> 00010600 INR
Portanto, no programa de amostra acima, estamos passando '00010000' para o método parseInt () e imprimindo o valor.
String fixedDepositAmount='00010000'; int fixedDepositAmountValue = Integer. parseInt (fixedDepositAmount); System. out .println('You have Fixed Deposit amount --->'+ fixedDepositAmountValue+' INR');Veremos o valor exibido no console como você tem um valor de depósito fixo -> 10.000 INR
Aqui, durante a conversão em um valor inteiro, os zeros à esquerda são removidos.
Em seguida, calculamos o valor do vencimento do depósito fixo como valor inteiro ‘10600’ e formatamos o valor do resultado usando o especificador de formato% 08 para recuperar os zeros à esquerda.
String maturityAmount = String. format ('%08d', maturityAmountValue);Quando imprimimos o valor da String formatada,
System. out .println('Your Fixed Deposit Amount on maturity is --->'+ maturityAmount+ ' INR');Podemos ver a saída sendo impressa no console como Seu valor de depósito fixo no vencimento é -> 00010600 INR
NumberFormatException
Na descrição de Integer.parseInt () método, também vimos uma exceção lançada pelo método parseInt (), ou seja, NumberFormatException.
Este método lança uma exceção, ou seja, NumberFormatException quando a String não contém um inteiro analisável.
Então, vamos ver o cenário em que essa exceção é lançada.
Vamos ver o programa de exemplo a seguir para entender esse cenário. Este programa solicita que o usuário insira a porcentagem pontuada e retorna a nota recebida. Para isso, ele analisa o valor String inserido pelo usuário em um valor inteiro.
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 '); } } }Aqui está o resultado do programa:
Vamos tentar com 2 valores de entrada diferentes inseridos pelo usuário.
1. Com valor inteiro válido
Insira a porcentagem que você marcou: 82
O valor percentual é -> 82
Você passou com distinção
2. Com valor inteiro inválido
Insira a porcentagem que você marcou: 85a
Exceção no thread “main” java.lang.NumberFormatException: Para string de entrada: “85a”
em java.lang.NumberFormatException.forInputString (fonte desconhecida)
em java.lang.Integer.parseInt (fonte desconhecida)
em java.lang.Integer.parseInt (fonte desconhecida)
em com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
Então, como visto na saída do programa,
# 1) Quando o usuário insere um valor válido, por exemplo, 82 como entrada, a saída sendo exibida no console é a seguinte:
O valor percentual é -> 82
Você passou com distinção
# 2) Quando o usuário insere um valor inválido, ou seja, 85a como entrada, a saída que é exibida no console é a seguinte:
Insira a porcentagem que você marcou: 85a
Exceção no thread “main” java.lang.NumberFormatException: Para string de entrada: “85a”
em java.lang.NumberFormatException.forInputString (fonte desconhecida)
em java.lang.Integer.parseInt (fonte desconhecida)
em java.lang.Integer.parseInt (fonte desconhecida)
em com.softwaretestinghelp.StringIntDemo3.main (StringIntDemo3.java:26)
java.lang.NumberFormatException está sendo lançado durante a análise de 85a no método Integer.parseInt (), pois '85a' tem o caractere 'a' que não é um dígito decimal nem o sinal ASCII '+' ou '-', ou seja, '85a' não é analisável inteiro para o método Integer.parseInt ().
Portanto, essa era uma das maneiras de converter Java String em int. Vejamos a outra maneira em que Java converte String em int, ou seja, usando o método Integer.valueOf ().
# 2) Usando o número inteiro. Método valueOf ()
O método valueOf () também é um método estático da classe Integer.
Vamos dar uma olhada na assinatura do método abaixo:
public static int parseInt (String str) lança NumberFormatException
Este é um método estático fornecido pela classe Integer que retorna um objeto de um classInteger com um valor especificado pelo objeto String passado a ele. Aqui, a interpretação do argumento passado é feita como um inteiro decimal com sinal.
Este é o mesmo que o argumento passado para o método parseInt (java.lang.String). O resultado retornado é um objeto da classe Integer que representa o valor inteiro especificado pela String. Em palavras simples, o método valueOf () retorna um objeto Integer igual ao valor de novo Inteiro (Integer.parseInt (str))
Aqui, o parâmetro ‘str’ é uma String contendo a representação inteira e o método retorna um objeto Integer que contém o valor representado por ‘str’ no método. Este método lança a exceção NumberFormatException quando a String não contém um inteiro analisável.
Vamos entender como usar este método Integer.valueOf ().
A seguir está um programa de exemplo. Este código de amostra calcula a temperatura média de 3 dias da semana. Aqui, para converter a temperatura, os valores são atribuídos como um valor String a um valor inteiro. Para esta conversão de String em inteiro, vamos tentar usar o método 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); } }Aqui está o resultado do programa:
Valor da temperatura de domingo -> - 2
Valor da temperatura de segunda-feira -> 4
Valor da temperatura de terça-feira -> 6
Temperatura média em 3 dias -> 2
Exercício: Se pudermos converter valores de String como visto acima, podemos tentar Strings com um ponto decimal
Por exemplo, em vez de “-2”, podemos tentar “-2,5”?
Tente o código de amostra acima com o método parseInt () ou valueOf () atribuindo String sundayTemperature = “-2,5”;
Dica: Leia a assinatura do método novamente sobre os valores analisáveis.
Responda: Se você tentar o programa de exemplo acima com String domingo Temperatura = “-2,5, ele lançará NumberFormatException como valores do argumento String para parseInt () e valueOf () são ASCII mais‘ + ’ou menos’ - ‘sinal e dígitos decimais.
Então, obviamente, ‘.’ É inválido. Além disso, como esses dois métodos são fornecidos pela classe Integer, os valores de ponto flutuante como “2,5” seriam valores não analisáveis para esses métodos.
Assim, discutimos os dois métodos da classe Integer para converter uma String em int em Java.
Perguntas frequentes sobre a conversão de string para int em Java
P # 1) Como posso converter String para int em Java?
Responda: Em Java, a conversão de String para int pode ser feita de duas maneiras, ou seja, usando os seguintes métodos de métodos da classe Integer:
- Integer.parseInt ()
- Integer.valueOf ()
Q # 2) Como você analisa um inteiro?
Responda: A classe Integer fornece métodos estáticos que são usados para analisar o valor inteiro para converter String em valor int, ou seja, parseInt () e valueOf ().
P # 3) O que é parseInt ()?
Responda: parseInt () é um método estático fornecido pela classe Integer que é usado para converter String Java em valor int, onde o valor String é passado como um argumento e o valor inteiro é retornado pelo método.
Por exemplo, int x = Integer.parseInt (“100”) retorna o valor int 100
P # 4) O que é análise em Java?
Responda: A análise em Java é basicamente a conversão do valor de um objeto de um tipo de dados em outro tipo de dados. Por exemplo, Integer.valueOf (str) converte ‘str’ que é um objeto do tipo de dados String em um objeto do tipo de dados Integer.
Conclusão
Neste tutorial, exploramos como converter String em int em Java usando os seguintes métodos estáticos Integer da classe wrapper:
- Integer.parseInt ()
- Integer.valueOf ()
Também cobrimos o caso em que NumberFormatException é lançada para um número inválido String.
Leitura adicional = >> 8 métodos para converter inteiro em Sting em Java
=> Explore a série de treinamento simples em Java aqui
Leitura recomendada
- Tutorial Java String com String Buffer e String Builder
- Tutorial de Java String | Métodos Java String com exemplos
- Java Reverse String: Tutorial com exemplos de programação
- Java String contains () Tutorial de método com exemplos
- Método Java String length () com exemplos
- Tutorial de JAVA para iniciantes: mais de 100 tutoriais práticos em vídeo Java
- Java Integer e classe Java BigInteger com exemplos
- Método Java substring () - Tutorial com exemplos