Não deixar passar campo se deixar em branco

5 respostas
Q

Fla galera entaum, como q eu posso fazer para se o cara digitar somente enter volte a pedir a msg de digite uma palavra…
tentei de algumas formas, + a melhorzinha, + msm assim num funfa foi essa:

String sVerPalavra = " "; while(sVerPalavra == " "){ System.out.print(" Digite a palavra: "); try{ sVerPalavra = bfScan.readLine(); } catch(IOException e) { System.out.println("Houve Erro na entrada de dados"); } }

gostaria de usar BufferedReader msm…
c alguem puder me ajudar, ficarei grato :wink:

5 Respostas

renzonuccitelli

Se o seu problema é só o espaço em brando ou não ter nada, tente isso

String sVerPalavra = " "; while(sVerPalavra.equals( " ")||sVerPalavra.equals( "")){ System.out.print(" Digite a palavra: "); try{ sVerPalavra = bfScan.readLine(); } catch(IOException e) { System.out.println("Houve Erro na entrada de dados"); } }

Tome cuidado nas comparações, veja no forum que há vários tópicos falando sobre a dirença entro o método equals e ==.
Espero ter ajudado.

renzonuccitelli

Só tome cuidado que o usuário poderia colocar um número de espaços em branco, aí, se vc não kiser lidar com isso, a lógica de controle deve ser outra…

Q

perfeito cara…
vlw!

outra coisa, tem equals(), e compareTo(); mew professor disse q prefere usar o compareTo(), + naum chego entrar em detalhes pq estamos no basico…

tem muita diferença??

[]'s

ViniGodoy

É melhor fazer assim (Java 6):

String sVerPalavra = ""; while(sVerPalavra.isEmpty()) { System.out.print(" Digite a palavra: "); try{ sVerPalavra = bfScan.readLine().trim(); } catch(IOException e) { System.out.println("Houve Erro na entrada de dados"); } }

O comando isEmpty() testa se a palavra é vazia. Já o comando trim() remove os espaços do início e do fim da linha.

Se você estiver no java 5 ou inferior, pode trocar o isEmpty() por

sVerPalavra.length() == 0

quitZAUMMM, quanto ao equals, sinto informar mas seu professor está errado. E por vários motivos:

  1. compareTo(outroObjeto) == 0 está relacionado a comparação de 2 objetos em termos de grandeza. Dois objetos diferentes podem ter a mesma grandeza, e portanto, você obteria uma comparação errada (não é o caso para strings, mas é bom saber que compareTo() == 0 e equals podem vir a fazer coisas diferentes);

  2. É mais fácil de ler e entender o equals do que o compareTo. Da mesma forma, é preferível o isEmpty() ao length() == 0 (e se vc vir a lógica dos dois, é idêntica, o isEmpty() simplesmente testa se o length() é igual a 0!)

O que é preferível, caso você queira também repudiar nulos, é colocar a constante (que nunca será nula) antes. Ou seja, ao invés de:

if (sValor.equals(""))

Faça:

if ("".equals(sValor))

Note que no primeiro caso, se objeto for nulo, o código lançará uma nullpointer exception, já que não poderá rodar o equals.
Já no segundo caso, o “” irá rodar o equals e retornará false, sem que haja um erro no seu código.

Finalmente, como eu já falei em outro post e volto a reforçar aqui, não é um bom hábito usar a notação húngara, ou seja, colocar o tipo de dado da variável abreviado na frente do nome da variável. Isso vai contra a nomenclatura padrão do Java e torna o código mais difícil de ler.

Q

fala vinni, antes de ler seu post, jah tava vindo postar esse codigo aki, pq como é um jogo da forca o jogo é para palavras e naum para um frase ;D!

while (sVerPalavra.contains(" ") || sVerPalavra.equals("")){ System.out.print(" Digite a palavra: "); try{ sVerPalavra = bfScan.readLine(); } catch(IOException e) { System.out.println("Houve Erro na entrada de dados"); } }
sobre seu codigo, vo dar uma analizadinha e vo tentar encaixar no mew programinha…

sobre oq vc disse de notação hungará, é pq aki no serviço me acostumaram a programar assim(aki naum é java), para uma facil manutenção caso seja outro programador q assuma o programa…
ai acostumei neh xD!

  • com o tempo vo perdendo esse habito, pq como no exemplo q vc posto lah no outro topico deu pra ver q poderá haver casos de variaveis com nomes muitooooooooooo estranhos ;D

[]'s

Criado 23 de setembro de 2008
Ultima resposta 23 de set. de 2008
Respostas 5
Participantes 3