Problema com String...d novo!

11 respostas
W

pessoal…
eu não sei explika direito…mas o negócio eh assim + ou -…
se uma string não receber valor, como eu faço pra voltar
pra entrada de dados dela???

tipo a varíavel só pode receber os valores 0 e 1

eu já consegui fazer tipo a “volta” pra entrada de dados
se for digitado qualquer coisa diferente de 0 e 1

mas se nada for digitado que tah sendo o meu problema

eu jah tentei os comandos abaixo (e com nenhum deles eu consegui!!!)

while (valorA != 1 || valorA != 0){

valorA = JOptionPane.showInputDialog

(“Entrada inválido para a!”+"\nDigite novamente: ");}
while (valorA == null){

valorA = JOptionPane.showInputDialog

(“Entrada inválido para a!”+"\nDigite novamente: ");}
while (valorA.length() < 1){

valorA = JOptionPane.showInputDialog

(“Entrada inválido para a!”+"\nDigite novamente: ");}
while (valorA.length() == 0){

valorA = JOptionPane.showInputDialog

(“Entrada inválido para a a!”+"\nDigite novamente: ");}
while (valorA == “”){

valorA = JOptionPane.showInputDialog

(“Entrada inválido para a!”+"\nDigite novamente: ");}

preciso de ajuda…
se eu fiz alguma coisa errada
ou se eu tenho q fazer de outra maneira!!!

vlw!!!

11 Respostas

Necro

alá amigo, você esta trabalhando com String… ou seja, um objeto!

voce tem que utilizar o metodo .equals e nao o comparativo ==

abraço

Zeed01

Boa noite Colegas !

Que tal:

String valorA = "c";
        while (!(valorA.equals("1") || valorA.equals("0"))){ 
            valorA = JOptionPane.showInputDialog 
            ("Entrada inválido para a!"+"\nDigite novamente: ");}

Obs.: Utilize as tags ao postar códigos

Abraços.

C

Bom dia,
conforme nosso amigo disse String é um Objeto, e para comparacao devemos utilizar os metodos dele.

Vc pode utilizar tambem o metodo isEmpty.

String teste;
     
    if (!teste.isEmpty) {
.......
    }

vc pode tambem consultar a documentacao da classe String http://java.sun.com/javase/6/docs/api/java/lang/String.html

Andre_Brito

Ou você pode usar Exceptions :slight_smile:

blackfalcon

Wendly, voce pode estar usando um do-while e caso o numero for diferente de 1 ou 0 ele continuara o codigo…

do { comandos; } while ();

Se nao me engano, é mais ou menos assim cara, da uma pesquisa… while ( var != 0 & var != 1)

Nao sei se esse while que eu coloquei esta correto, mas a logica é essa…

Dai onde esta comandos; voce coloca o comando para o usuario escrever o numero.

Conseguiu entender o que eu falei? :slight_smile:

Abraços

W

vlw!!!

isso mesmo!!!

bom…eu usei o .equals e facilito bastente!!!
po, acho q eu tirei um palmo do programa…kpsksdpjsp…

mas vlw!!!

ajudo bastante!!!

flw!!!

Kassiane_Pretti

Mas lembrando se vc quiser dispensar a diferença entre maiusculas e minusculas use o equalsIgnoreCase()…

=)

W

hummm…

pode dah um exemplo
pode ser bem medíocre assim…

soh pra mim entender certinho como eh q funciona!!!
poksoskpos…

eh q eu soh meio ignorante sab!?!?!?

Kassiane_Pretti
String nomeA = "java";
string nomeB = "JAVA";

if(nomeA.equals(nomeB)) // retorna falso, pois as strings são diferentes e o equals é case sensitive

if(nomeA.equalsIgnoreCase(nomeB))//retorna true, pois não leva em consideração o case das palavras

retorno do equals() e equalsIgnoreCase():

true = strings iguais;
false = strings diferentes.

Espero ter ajudado =)

B
Wendly:
while (valorA != "1" || valorA != "0"){
		valorA = JOptionPane.showInputDialog
		("Entrada inválido para a!"+"\nDigite novamente: ");}
		
while (valorA == null){
		valorA = JOptionPane.showInputDialog
		("Entrada inválido para a!"+"\nDigite novamente: ");}

while (valorA.length() < 1){
		valorA = JOptionPane.showInputDialog
		("Entrada inválido para a!"+"\nDigite novamente: ");}

while (valorA.length() == 0){
		valorA = JOptionPane.showInputDialog
		("Entrada inválido para a a!"+"\nDigite novamente: ");}

while (valorA == ""){
		valorA = JOptionPane.showInputDialog
		("Entrada inválido para a!"+"\nDigite novamente: ");}
do
{
  valorA = JOptionPane.showInputDialog
  ("Entrada inválida para a!\nDigite novamente: ");
} while (valor == null || ! valor.matches("^[01]$"));
W

ahhhh…desculpa a demora pra responder!!!

mas pod cre q ajudo muito!!!

o trabalho era interdisciplinar…

fechei com a nota máxima nas 2 matérias!!!

t+

vlw!!!

Criado 17 de junho de 2008
Ultima resposta 4 de jul. de 2008
Respostas 11
Participantes 8