Comparar uma string se é inteira

Pessoal,

Não consigo verificar se uma string é inteira ou não!

Meu código:

import javax.swing.JOptionPane;

public class Exec07 {
	public static void main(String[] args) {
		final int ladosTriangulo = 3;
		float semiPerimetro = 0, soma = 0;
		int recebeValor = 0;

		for (int x = 1; x <= ladosTriangulo; x++) {
			recebeValor = Integer.parseInt((JOptionPane.showInputDialog(null,
					"digite um número inteiro")));
		}

	}
}

o valor a ser digitado deve ser inteiro. Preciso saber comparar se é um inteiro para que eu possa repetir o processo, para ser digitado novamente.

Obrigado,

Rodrigo.

Olá:

Experimente usar expressões regulares:

"1234".matches("\d*")

Grato,

desculpe minha ignorância mais vc quer saber se oq vc digitou é um 1 ou “1”

e mostra um System.out.println(“É um número inteiro”);
ou System.out.println(“É um numero Literal”);

[quote=Rafael Afonso]Olá:

Experimente usar expressões regulares:

"1234".matches("\d*")

Grato, [/quote]
Posso estar totalmente enganado, e nem fiz um teste, mas já ouvi falar que é mais performático verificar um NumberFormatException (Integer.parseInt, por exemplo).

Obs: o matches só funciona no 1.4 para cima.

De qualquer maneira, é sempre melhor isolar tais coisas em um método utilitário. É melhor ter algo como:

/**
 * Verifica se seu parâmetro representa um valor numérico (um ou mais dígitos de 0 a 9).
 * @param str A string a ser verificada.
 * @return true se a string representa um valor numérico.
 */
public static boolean isNumeric (String str) {
    ... ponha aqui sua implementação preferida ...
}

que ficar fazendo copy&paste dessas coisas (.matches ("\d+") ou try/catch) no meio do seu código.

Isso parece sânscrito para quem não é fera em expressões regulares, e além disso é difícil de manter.

Muito obrigado pessoal, com a ajuda de todos consegui.

ficou assim:

public class Exec07 {
	static boolean numerico = false;

	public static void main(String[] args) {
		final int ladosTriangulo = 3;
		int numeroInt;
		String string = "";

		for (int x = 1; x <= ladosTriangulo; x++) {
			string = JOptionPane
					.showInputDialog(null, "Digite valor inteiro: ");

			while (isNumerico(string)) {
				string = JOptionPane.showInputDialog(null,
						"Deve ser um valor inteiro: ");
			}
			numeroInt = Integer.parseInt(string);
			System.out.println("numeroInt: " + numeroInt);
		}
	}

	public static boolean isNumerico(String string) {
		char[] cs = string.toCharArray();

		for (int x = 0; x < cs.length; x++) {
			if ((cs[x] < '0') || (cs[x] > '9')) {
				return numerico = true;
			}
		}
		return numerico = false;
	}
}

até+,

Rodrigo.