HOWTO · Java

Como converter uma string em uma Int em Java

Este artigo introduz a conversão de String para uma int em Java.

Este tutorial introduz como converter uma string em Java e lista alguns exemplos de códigos para entendê-la.

Converta uma string para umaint utilizando a parseInt() em Java

Tanto String quanto int são tipos de dados em Java. A string é utilizada para armazenar informações textuais enquanto aint é utilizada para armazenar dados numéricos.

Aqui, utilizamos o método parseInt() da classe Integer que retorna um número inteiro. Uma vez que o Java faz o auto-boxing implícito, então podemos armazená-lo em tipo int primitivo. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1234";
    int int_val = Integer.parseInt(str);
    System.out.println(int_val);
  }
}

Resultado:

1234

Converter String em um int utilizando Apache em Java

Se você estiver trabalhando com a biblioteca Apache, você pode utilizar o método toInt() da classe NumberUtils que retorna um valor int. Se a string passada contiver qualquer char não numérico, este método não lança nenhuma exceção, mas retorna 0. É seguro utilizar toInt() ao invés de parseInt() que lança NumberFormatException. Veja o exemplo abaixo.

import org.apache.commons.lang3.math.NumberUtils;

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1234";
    int int_val = NumberUtils.toInt(str);
    System.out.println(int_val);
    str = "1234x"; // non-numeric string
    int_val = NumberUtils.toInt(str);
    System.out.println(int_val);
  }
}

Resultado:

1234 0

Converter String para um int utilizando decode() em Java

Podemos utilizar o método decode() da classe Integer para obter o valor int de uma string. Ele retorna o valor Integer, mas se você quiser obter o valor int (primitivo) então utilize o método intValue() com decode(). Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.decode(str);
    System.out.println(int_val);
    // int primitive
    int_val = Integer.decode(str).intValue();
    System.out.println(int_val);
  }
}

Resultado:

1424

Converter String para um int utilizando valueOf() em Java

Podemos utilizar o método valueOf() para obter um valor int de uma string após a conversão.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.valueOf(str);
    System.out.println(int_val);
  }
}
1424 1424

Converter String para um int utilizando parseUnsignedInt() em Java

Se quisermos converter uma string que não inclua um sinal, utilize o método parseUnsignedInt() para obter valor int. Ele funciona bem com valor de string não assinado e lança uma exceção se o valor for assinado.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424";
    int int_val = Integer.parseUnsignedInt(str);
    System.out.println(int_val);
  }
}

Resultado:

1424

Converter String depois de remover caracteres não-numéricos utilizando replaceAll() em Java

Se a string contém caracteres não-numéricos, utilize o método replaceAll() da classe String com regex para remover todos os caracteres não-numéricos e depois utilize o método parseInt() da classe Integer para obter seu valor inteiro equivalente. Veja o exemplo abaixo.

public class SimpleTesting {
  public static void main(String[] args) {
    String str = "1424x";
    str = str.replaceAll("[^\\d]", "");
    int int_val = Integer.parseInt(str);
    System.out.println(int_val);
  }
}

Resultado:

1424