Todo grande desafio começa com o primeiro passo, o meu vem com uma pergunta junto
Pessoal, eu estou com uma dúvida. Vou postar o código abaixo que funciona assim: eu digito linhas, pressiono Enter, e quando eu paro a execução é gerado um arquivo texto com o conteúdo. Meu problema está em, ao invés de parar a execução, eu gostaria que uma linha em branco (ou enter duas vezes) encerrasse a execução e gerasse o arquivo com o conteúdo digitado. Segue:
package teste;
import java.io.*;
public class EntradaTexto{
public static void main(String[] args) {
digitarTeclado();
}
public static void digitarTeclado(){
String destino="";
destino="C:\\temp\\log.txt";
String linha = "";
String teste = "";
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(isr);
System.out.println("Digite algo no console e tecle enter");
try{
FileWriter o = new FileWriter(destino);
PrintWriter out = new PrintWriter(o);
while ((linha = in.readLine())!=null){
System.out.println(linha);
//tentativa de sair #fail
if (linha==""){
System.out.println("Sai do loop!");
break;
}
out.println(linha);
}
out.flush();
o.close();
}catch(Exception e){
e.getMessage();
}
}
}
Como eu posso solucionar este problema? Tentei utilizar um if com break e nada…
Ah se tiverem algo a comentar como eu poderia ter feito melhor, eu ficarei imensamente grato! Sou novo no mundo Java, e estou gostando muito dessa linguagem! E crítica é sempre bom!
No java não da pra comprar string usando o == …tem que usar o equals…
Mas debuga seu programa…e ve quando você da enter o que vem na string? vem string vazia ("") ou string com espaço (" “) ou quebra de linha (”\n")?
depois de descobrir o que vem na string quando você aperta enter…ai é só colocar isso no seu if comparando com equals ao invés de == que vc consegue alterar o fluxo quando apertar enter…certo?
para comparação de string sempre utilize o método equals.[/quote]
ficou uma duvida minha agora. sobre o equals
como seriam feitas as comparações dentro de um if exemplo. Este abaixo. q fiz.
int s, maior;
[code]
System.out.println("Digite o primeiro valor");
int v1 = sc.nextInt();
System.out.println("Digite o segundo valor");
int v2 = sc.nextInt();
System.out.println("Digite o terceiro valor");
int v3 = sc.nextInt();
if(v2 > v3){
System.out.equals(maior == v2);
}
else{
System.out.equals(maior == v3);
}
s = (v1 + maior) /2;
if (s >= 6){
System.out.println("Aluno aprovado");
Segundo o que eu entendi o equals é utilizado para comparar apenas string. Por exemplo:
if (nome.equals("Bruno"));
...
No seu caso você está usando números, então a comparação fica assim:
if(v2 > v3){ //a comparação acontece aqui, se o v2 (segunda nota digitada) for maior que v3(terceira nota digitada) então faça:
maior = v2; //nota maior será igual à v2
}
else{ //se a comparação acima for falsa (nota 3 maior que nota 2)
maior = v3;
}
Se quiser utilizar a comparação se a nota v2 for igual à v3, utilize:
Segundo o que eu entendi o equals é utilizado para comparar apenas string. Por exemplo:
if (nome.equals("Bruno"));
...
No seu caso você está usando números, então a comparação fica assim:
if(v2 > v3){ //a comparação acontece aqui, se o v2 (segunda nota digitada) for maior que v3(terceira nota digitada) então faça:
maior = v2; //nota maior será igual à v2
}
else{ //se a comparação acima for falsa (nota 3 maior que nota 2)
maior = v3;
}
Se quiser utilizar a comparação se a nota v2 for igual à v3, utilize:
if(v2==v3){
...
}
Era esta sua dúvida?
Valeu![/quote]
bgomes vlw
exato. era sim. porem a duvida era eu achava que ele tbm poderia ser comparado com equals. que eu ja tinha testado desta forma que vc mencionou agora entendi q o equals so faz comparaçoes de strings. entre si.
Para comparações propriamente ditas, ordernar uma String em relação à outra, há o compareTo e o compareToIgnoreCase.
As classes wrappers de números e outros tipos primitivos do Java também tem estes mesmos métodos que citei, e milhares de outros. Veja sempre o JavaDoc de toda classe Java com que for trabalhar para aprender a usar a linguagem inteira.