Comparaison

rimben94 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
ProvencaleLeGaulois Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   -
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

Chris 94 Messages postés 54087 Date d'inscription   Statut Modérateur Dernière intervention   7 345
 
0
ProvencaleLeGaulois Messages postés 48 Date d'inscription   Statut Membre Dernière intervention   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 3 Date d'inscription   Statut Membre Dernière intervention  
 
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 48 Date d'inscription   Statut Membre Dernière intervention   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 3 Date d'inscription   Statut Membre Dernière intervention  
 
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 48 Date d'inscription   Statut Membre Dernière intervention   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 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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 48 Date d'inscription   Statut Membre Dernière intervention   6
 
Exact !
0