Pessoal, tenho esta dúvida. Como eu posso verificar se a estring é letra ou numero??
String str = “a2d3fd32”;
String str2="";
str2 = str.substring(1,2);
str2 é igual há - 2 -
mas como eu faço essa verificacão??? sem fazer conversão??
Pessoal, tenho esta dúvida. Como eu posso verificar se a estring é letra ou numero??
String str = “a2d3fd32”;
String str2="";
str2 = str.substring(1,2);
str2 é igual há - 2 -
mas como eu faço essa verificacão??? sem fazer conversão??
[code]
public boolean ehInteiro( String s ) {
// cria um array de char
char[] c = s.toCharArray();
boolean d = true;
for ( int i = 0; i < c.length; i++ )
    // verifica se o char não é um dígito
    if ( !Character.isDigit( c[ i ] ) ) {
        d = false;
        break;
    }
}
return d;
}[/code]
Falta verificar se tem um ponto no meio caso queria um número decimal.
Até mais!
        try {
	    valor = (Double.parseDouble(str2));
            ehNumero = true;
	} catch (NumberFormatException e) {	  
            ehNumero = false;
	}
       if (ehNumero) {
       ....
       }
        Valew David exatamente o que eu queria!!
TÓPICO RESPONDIDO!
Disponha 
acho que você pode fazer isso por expressões regulares
ainda não entendo muito maisacho que é algo assim
String a = "a2w5sd6545";
if(a.contains("^[a-Z]"))System.out.println("Tem letras");
else System.out.println("Apenas numeros");
        Realmente Mark, pode-se usar uma expressão regular, mas seria mais interessante verificar se é um número e não se a String não contém números. Se sua String for “ac_ds” vc vai ver que seu trecho de código vai mostrar “Apenas números” enquanto na verdade existe um “_” ali no meio. Mais uma coisa, o contains não funciona com expressões regulares.
Se quiser usar expressões regulares, vc pode fazer:
[code]
String s1 = “”;
String s2 = “.”;
String s3 = “0.”;
String s4 = “0”;
String s5 = “.0”;
String s6 = “0.0”;
// [-]? com ou sem o sinal de subtração
// \d* zero ou mais dígitos
// [.]? com ou sem ponto
// \d+ um ou mais números
String p = “[-]?\d*[.]?\d+”;
// compara cada String com o padrão “p”
System.out.println( Pattern.matches( p, s1 ) );
System.out.println( Pattern.matches( p, s2 ) );
System.out.println( Pattern.matches( p, s3 ) );
System.out.println( Pattern.matches( p, s4 ) );
System.out.println( Pattern.matches( p, s5 ) );
System.out.println( Pattern.matches( p, s6 ) );[/code]
Até mais!
[quote=Mark_Ameba]acho que você pode fazer isso por expressões regulares
ainda não entendo muito maisacho que é algo assim
String a = "a2w5sd6545";
if(a.contains("^[a-Z]"))System.out.println("Tem letras");
else System.out.println("Apenas numeros");
[/quote]
Poooooo, valeu mesmo…
…gostei dessa!!
Com regex seria melhor checar tudo, até o final.
[code] String s = “Déjàvu”;
  if (s.matches("^[a-zA-ZÁÂÃÀÇÉÊÍÓÔÕÚÜáâãàçéêíóôõúü]*$"))
     System.out.println("Só tem letras.");
  else if (s.matches("^[0-9]*$"))
     System.out.println("Só tem dígitos.");
  else
     System.out.println("Outro");[/code]
        Não qrdo desvirtuar o tópico mas desvirtuando, seria melhor chegar se só tem números e não os caracteres que não pode ter…
String texto = "abcdefg";
//Só números
if(texto.matches("^[0-9]*$")){
...
//Se quiser separador decimal tb
if(texto.matches("^[0-9]*[.]{0,1}[0-9]*$")){
...
Espero ter ajudado…
[]'s
Pessoal ,
Somente para ficar no historico desse tópico , no caso de outras pessoas estiverem com essa duvida , segue uma forma de fazer essa verificação parecido com a do davidbuzatto:
	public boolean ehInteiro( String s ) {  
  
		// cria um array de char  
		// char[] c = s.toCharArray();  
		boolean d = true;  
  
		for ( int i = 0; i < s.length(); i++ ) { 
			// verifica se o char não é um dígito  
			if ( !Character.isDigit( s.charAt(i) ) ) {  
				d = false;  
				break;  
			}  
		}  
  
	return d;  
  
	}