Negocio

Como verificar se uma string é um inteiro em Java

Java Strings

Java Strings são ótimos quando você deseja trabalhar com uma ampla variedade de dados em um único tipo de dados. Eles podem conter texto, inteiros, decimais e duplos. Mas e se você quiser verificar uma determinada string para ver se é um inteiro ou se uma matriz de string contém um inteiro?

Existem alguns métodos para fazer isso. Começaremos com a função parseInt , que pega uma string e tenta alterá-la para um inteiro. Vamos dar uma olhada em um exemplo básico. Por exemplo, o código a seguir cria uma string que é um número e usa parseInt para exibir o valor.

Testador de string = nova String ("871"); 
System.out.println (Integer.parseInt (testador));

A saída seria 871. Lembre-se de que qualquer inteiro é um número inteiro que pode ser positivo, negativo ou zero. Praticamente qualquer número inteiro passará no teste. No entanto, os números além do intervalo (como 8589934592) não serão aprovados. Um decimal ou fração também falhará no teste.

E se a string não fosse um inteiro? Tecnicamente, poderíamos usar parseInt para verificar e ver se uma string é um inteiro. Mas se o valor não fosse um inteiro, Java geraria uma mensagem de erro muito desagradável. Digamos que a string fosse Jane Eyre e tentamos o código anterior. Um erro como este seria exibido:

Erro de exceção Java

Experimente / pegue

Sempre que estamos lidando com diferentes tipos de dados, precisamos ter certeza de que temos algum código que possa capturar as exceções. Para fazer isso, usamos os blocos try e catch em torno de nosso teste.

Portanto, o próximo exemplo é um pouco mais complexo. Em nossa seção principal, configuraremos uma string como um array de strings, com algumas strings e alguns inteiros. Também temos uma segunda função chamada checkMe , que realiza a verificação real. Usaremos novamente o parseInt, mas com um toque diferente.

Primeiro, vamos dar uma olhada no código que verifica se a string tem números inteiros. A função checkMe aceita um parâmetro (uma string), então usa a função parseInt e retorna TRUE se o valor realmente for um inteiro. Se parseInt falhar, ele lançará uma exceção. Capturamos quaisquer exceções no bloco catch e não fazemos nada. Poderíamos mostrar um erro aí, mas não é necessário. A última parte do código devolve o cheque. É válido ou não? É um número inteiro ou não?

public static boolean checkMe (String s) { 
  boolean amIValid = false;
  tente {
   Integer.parseInt (s);
   // s é um inteiro válido!
   amIValid = true;
  } catch (NumberFormatException e) {
   // desculpe, não é um inteiro
   // vamos apenas seguir em frente, mas você pode ter o código aqui
  }
  return invalid;
}

A seguir, podemos examinar a função principal , que cria um array de strings, com alguns inteiros, alguns duplos e algumas strings. Em seguida, ele fará um loop por essa matriz e verificará se alguma das strings é inteira. Cada vez que ele passa pelo loop, ele chama nossa função checkMe para ver se o sinalizador é verdadeiro ou falso, imprimindo o resultado a cada vez.

public static void main (String [] args) { 
  String coolString [] = {
   "Jane Eyre",
   "50735331" "23.5331",
   "Alvin"
  };
  // O loop percorre a matriz
  (para i = 0; i <coolString.length; i ++) {
   // somos um inteiro?
   boolean checkInteger = checkMe (coolString [i]);
   (if (checkInteger) {
    System.out.println ("Sim," + coolString [i] + "é um número inteiro");
   } else {
    System.out.println ("Desculpe," + coolString [i] + "é NÃO um inteiro ");
   }
  }
}

Finalmente, quando executamos o programa, esta saída é exibida:

Saída de string inteira Java

O código verificou cada bloco da matriz de string. Quando atingiu o primeiro valor (Jane Eyre), executou a função checkMe. Java tentou converter o valor em um inteiro usando parseInt, mas falhou. Felizmente, a instrução catch nos salvou e o programa continuou em execução. Em seguida, o código processou 50735331. Desta vez, parseInt foi capaz de converter o valor e passou TRUE de volta para o programa principal.

Resumo da lição

Para recapitular, as strings são tipos de dados poderosos em Java porque podem conter muitos tipos diferentes de dados. Se quisermos determinar se uma string é um inteiro, podemos usar a função parseInt para converter a string em um inteiro e retornar um valor verdadeiro se for bem-sucedido. Se a conversão falhar, detectamos o erro com os blocos try e catch e continuamos com o resto do programa.