Comparaison

Fermé
rimben94 Messages postés 3 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 2 juin 2014 - Modifié par Chris 94 le 2/06/2014 à 18:16
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 - 2 juin 2014 à 22:05
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 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 337
2 juin 2014 à 18:17
0
ProvencaleLeGaulois Messages postés 48 Date d'inscription lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
2 juin 2014 à 18:30
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 lundi 2 juin 2014 Statut Membre Dernière intervention 2 juin 2014
2 juin 2014 à 18:59
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 lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
2 juin 2014 à 18:46
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 lundi 2 juin 2014 Statut Membre Dernière intervention 2 juin 2014
2 juin 2014 à 19:01
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 lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
2 juin 2014 à 20:15
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 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
Modifié par KX le 2/06/2014 à 21:35
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 lundi 2 juin 2014 Statut Membre Dernière intervention 18 septembre 2014 6
2 juin 2014 à 22:05
Exact !
0