Mais uma de novato

estou estudando java entao me desculpem.

fiz uma classe “Teclado” que chama a “LeTeclado”

na realidade o objetivo e ler a digitacao do teclado e mostrar na tela
ate que o digitador digite a palavre “fim”

pois e

tudo funciona aparentemente bem, porem, mesmo a classe retornando a palavre fim
nao consigo sair do loop na classe “Teclado”

observem as duas:

// ------------------Classe Teclado ---------------------------------------------------------------
public class Teclado {
public static void main(String[] args) {
String s = “”;

	LeTeclado Tec = new LeTeclado();

/* observem o loop abaixo

  • a classe Leitura retorna a string do teclado

  • com os dois caracteres no final de cr lf

  • retiro essses dois caracteres para poder finalizar o loop

  • mas mesmo assim nao sai do loop

  • e como se o s continuasse diferente da palavra “fim”

  • duro e que eu mostro o retorno e vem a palavra “fim”

  • nao sei porque nao sai do loop
    */
    while (s != “fim”) {
    s = Tec.Leitura();

     	s = s.substring(0, (s.length() - 2)); //tire 13 e 10 no final
    
     	System.out.println(s + " " + s.length()); // mostra o fim digitad
                                                   // junto com tam 3
     }
     System.out.println("final da aplicacao");
    

    }
    }

// ----------------- Classe LeTeclado

import java.io.*;

public class LeTeclado {

public String Leitura() {
	int a = 0;
	String s = "";

	InputStream t = System.in;
	System.out.println("Inicio");

	while (a != 10) {
		try {
			a = t.read();
			System.out.println(a);
		} catch (Exception e) {
			System.out.println(e);
		}
		s = s + (char) a;
	}
	return s;
}

}

ja coloquei um if (s == “fim”) e tambem nao deu certo. mesmo que mostrando na tela que realmente veio a palavre “fim” a comparacao nao funciona

se alguem poder me ajudar
agradeco desde ja

usa a tag pra ajudar…

a 1 observação: use s.equals(“fim”).

Porfavor,
Coloque seu código entre as TAGs referentes à código.

Olá amigo, também sou novato espero que te ajude.

Para comparar STRING não se usa o"==" se usa o método equals ou equalsIgnoreCase (se você quiser que comparar independente se ta em caixa alta ou baxa!)

Por exemplo!

String a = "bb";
String b = "Bb";
if(a.equalsIgnoreCase(b))
{
// se for igual
}
else
{
//se for diferente
}

Espero que ajude. Att.

mais uma vez obrigado
a solucao e que eu tinha que compara com o s.equals

como eu sou novato estou apanhando um pouco porem

tenho postado algums coisas aqui e o pessoal me pede para por entre tags
caramba eu sou novato nao sei o que tenho que fazer para por entre
tags…

se vcs poderem me ajudar eu agradeco e com certela facilita para vcs

alguem ficou chateado pq eu nao tinha colocado tabs mas e simplemente por falta de conhecimento…

mas lembrem-se que so se aprente perguntando…
se alguem poder me informar como colocar o codigo entre tags eu fico feliz

obrigado

[quote=jonasjgs2]mais uma vez obrigado
a solucao e que eu tinha que compara com o s.equals

como eu sou novato estou apanhando um pouco porem

tenho postado algums coisas aqui e o pessoal me pede para por entre tags
caramba eu sou novato nao sei o que tenho que fazer para por entre
tags…

se vcs poderem me ajudar eu agradeco e com certela facilita para vcs

alguem ficou chateado pq eu nao tinha colocado tabs mas e simplemente por falta de conhecimento…

mas lembrem-se que so se aprente perguntando…
se alguem poder me informar como colocar o codigo entre tags eu fico feliz

obrigado
[/quote]

É só colocar [code*] antes de seu código, e colocar [/code*] depois dele. (sem os asteriscos)
Ou, se preferir, selecione o código, e clique no botão referente à TAG citada acima.

Ai tem tudo :slight_smile:

http://guj.com.br/java/15777-antes-de-voce-perguntar
http://guj.com.br/java/50115-voce-e-novo-no-guj-va...onte-leia-aqui-antes-por-favor

[quote=jonasjgs2]mais uma vez obrigado
a solucao e que eu tinha que compara com o s.equals

como eu sou novato estou apanhando um pouco porem

tenho postado algums coisas aqui e o pessoal me pede para por entre tags
caramba eu sou novato nao sei o que tenho que fazer para por entre
tags…

se vcs poderem me ajudar eu agradeco e com certela facilita para vcs

alguem ficou chateado pq eu nao tinha colocado tabs mas e simplemente por falta de conhecimento…

mas lembrem-se que so se aprente perguntando…
se alguem poder me informar como colocar o codigo entre tags eu fico feliz

obrigado
[/quote]

Ali logo embaixo do assunto clique em Code e coloque o codigo la dentro 8)

Aproveitando o pessoal te deu exemplos de if, mas como voce esta utilizando while ao invez de while (s != “fim”) { coloque while(!s.equals(“fim”)){
o ! vai fazer ele parar quando for fim

a dica do Vinicius ai é muito boa. e muito útil, evita muitos else embranco etc!

Só uma observação: quando se escreve

if(obj1.equals(obj2) ) 

por exemplo, se está verificando se os dois objetos pertencem ao mesmo espaço de memória (se referenciam o mesmo objeto). Para comparar os valores dos objetos constatando se os objetos são iguais, deve-se sobrescrever o método equals() de java.lang.object:

Ex.:


public boolean equals(Object obj)
    {
    	if(obj instanceof Product)
    	{
    		Product prod2 = (Product) obj;
    		if(code.equals(prod2.getCode()) && description.equals(prod2.getDescription())
    		   && price == prod2.getPrice())
    		{
               return true;    		  	
    		}
    	}
      return false;
    }

O código acima verifica se o objeto passado como parâmetro é uma instância de Product e se for, verifica os valores do parâmetro com os de this retornando
true se todos os valores forem iguais e false caso contrário.