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.
[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.