Comparaison

rimben94 Messages postés 4 Statut Membre -  
ProvencaleLeGaulois Messages postés 50 Statut Membre -
Bonjour,
Je souhaite créer une application qui lit sans arrêt des lignes depuis le clavier et qu'elle affiche à l'écran.
L'application finira quand la ligne sera le mot "fin".
Le programme que j'ai réalisé est le suivant:

public class LectureClavier {
    public static void main(String[] args) throws IOException {
        char c; 
        String str1= "fin";
        System.out.println("Entrez phrase:");
        String linea = new String(""); 
       while((c=(char)System.in.read()) != 'fin')
       System.out.println(linea);
          
       }  
        }


Mais dans ce cas la je compare un string avec un caractère :/
A voir également:

3 réponses

ProvencaleLeGaulois Messages postés 50 Statut Membre 6
 
Bonjour rimben94,

Il faut que la ligne soit le mot "fin" ou est-ce qu'il faut aussi que ça s'arrête si je tape : "je sens que c'est la fin"

Ou : "la lame est fine, c'est bien !"

Ou il faut absolument que l'utilisateur tape le mot "fin" et rien d'autre pour terminer ?

A+
0
rimben94 Messages postés 4 Statut Membre
 
Bonjour,
merci pour votre réponse .
Il faut que l'utilisateur tape le mot fin pour que ça s'arrete.
0
ProvencaleLeGaulois Messages postés 50 Statut Membre 6
 
Re-bonjour,

A mon avis, you better do it :

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class LectureClavier { 
	
	public static void main(String[] args) throws IOException { 

	System.out.println("Entrez phrase:"); 
	String strDeFin = "fin";
	
	while(!litClavier().contentEquals(strDeFin)){
		System.out.println(""); 
	}
	
	System.out.println("fini !");


	} 
	
public static String litClavier() throws IOException{
	BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); 
	return keyboard.readLine(); 
		
	}
} 



A+
0
rimben94 Messages postés 4 Statut Membre
 
Merci beaucoup j'essaierai ce code.
Un caractère ne peut donc pas être comparé à un string comme par ex 'fin' c'est bien ce la?
0
ProvencaleLeGaulois Messages postés 50 Statut Membre 6
 
Oui c'est cela.
En Java il est impossible de comparer deux variables qui ne sont pas du même type.
0
KX Messages postés 19031 Statut Modérateur
 
Bonsoir,

Quelques remarques :

'fin' n'est pas un caractère valide, vu qu'il y a trois caractères en un...

Depuis Java 5, on utilisera plutôt la classe Scanner pour les lectures de flux, en le déclarant une seule fois, pas la peine d'ouvrir un nouveau flux à chaque lecture d'une ligne.

private static final Scanner CLAVIER = new Scanner(System.in);

public static String litClavier()
{
    return CLAVIER.nextLine();
}
0
ProvencaleLeGaulois Messages postés 50 Statut Membre 6
 
Exact !
0