Dúvida

5 respostas
D

Olá pessoal,
preciso de uma ajudinha.
Tenho que varrer uma String e verificar se existe algum caracter diferente de um e zero.
Alguém pode me ajudar?
Implementei essa classe soh q ela dá erro:

public boolean validaNumero (int x){

String str = Integer.toString( x );          //Converte a variavel lida para String.

for(int i=0;i<str.length();i++){

char c = str.charAt(i);

if (c != 0 || c!= 1 ){

return false;

}else{

return true;

}

}

}

5 Respostas

G

cara posso ta enganado pois sou novo na area tambem

mas ACHO voce vai ter que usar o equals pra fazer a comparacao dos valores

peczenyj

seu raciocinio esta correto. porem a verificação não.

no loop sobre o array, se vc encontrar algum caracter que não seja ‘1’ ou ‘0’ retorne false imediatamente.

agora, se vc que validar se o numero foi informado com representação binaria vc pode usar Integer.valueOf

try{ Integer.valueOf(Integer.toString(x),2); // se chegar aqui o numero esta "cool" }catch(NumberFormatException nfe){ // se cair aqui tem algo errado. }

D

Cara,
Acho que desta forma vai dar certo sim.
Mas sou novo no java, e naum conheço muito bem a implementação desses dois métodos. “Try” e “Catch”.
Será que vc pode me dizer como ficaria isso nesse laço for apresentado acima?
Desde já agradeço a paciencia.
Abraço

T

Olá Diego,

Vou tentar de explicar uma maneira mais simples para você compreender agora.
O Try… Catch nada mais é do que uma proteção no nosso código, no exemplo do peczenyj , ele pega a sua string e tenta convertela para Integer, caso ocorra um problema na hora de fazer essa conversão ele vai lançar uma exception NumberFormatException. Com isso você pode tratar seu código na parte do catch.

Essa explicação foi bem por cima mesmo… se quiser pode procurar por exceptions aqui no guj que tem bastante assunto.

Espero ter te ajudado.

Abraço

discorpio

Boa noite a todos.

Acho que assim o código fica mais enxuto.

public boolean validaNumero (int x){ 
           String str = Integer.toString( x ); //Converte a variavel lida para String. 
           if (if str.indexOf("0")>=0 || str.indexOf("1")>=0){
               return true;
           } else {
               return false;
           }

O método [color=blue]"indexOf"[/color] da classe String é usado para localizar caracteres ou substrings em uma String de modo tal que voce não precisa utilizar um loop "for" ou qualquer outro laço de repetição. Este método retorna um número inteiro indicando a posição do vetor String, começando, é claro pelo índice 0 (zero). Caso não encontre o caracter ou substrings especificada entre parêntesis, retorna o número -1

Criado 27 de março de 2010
Ultima resposta 27 de mar. de 2010
Respostas 5
Participantes 5