IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Problème sur programme qui transforme des lettres en majuscules


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2017
    Messages : 1
    Points : 7
    Points
    7
    Par défaut Problème sur programme qui transforme des lettres en majuscules
    Bonjour,

    J'ai un un problème dans ce programme (qui va rendre en majuscule la première lettre de tous les mots d'une phrase). Pouvez-vous m'aider ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package java_dev;
     
    import java.util.Scanner;
     
    public class class1 {
    	public static void main(String args[]){
     
    		String phrase;
    		String nouvellePhrase = ""; 
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Entrez votre chaine de caractères ici.");
    		phrase = sc.nextLine();
    		char p = phrase.charAt(0);
    		nouvellePhrase += (char)(p-32);
    		for(int k =1; k<phrase.length(); k++){
    			char c = phrase.charAt(k);
     
    			if (phrase.charAt(k)==' ')
     
    			{ char t= phrase.charAt(k+1);
    			nouvellePhrase += (char)(' ');
    			nouvellePhrase += (char)(t-32);}
    			else {
    				nouvellePhrase += (char)(c);
    			}
    		}
    Voilà le résultat :
    Pièce jointe 322764

    Merci pour votre aide !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 104
    Points : 140
    Points
    140
    Par défaut
    Bonjour,
    Le problème vient du fait que le caractère suivant un espace est traité deux fois, une fois avec l'espace et une fois quand c'est son tour.
    Mais il y a d'autres défauts dans ce programme :
    - Construire la nouvelle phrase à coup d'opérateur += est très inefficace car cela créé un nouvel objet String à chaque fois. Utiliser la classe StringBuilder pour nouvellePhrase serait bien plus approprié.
    - La façon de transformer une minuscule en majuscule ne teste pas le caractère à transformer. Faites donc un test avec la phrase "J'ai 20 ans : je suis un étudiant". La méthode toUpperCase de la classe Character fait bien mieux le job.
    Bon courage pour vos début en Java.

Discussions similaires

  1. [PHP 5.4] Mettre en majuscule la première lettre d'une chaine
    Par Thatch dans le forum Langage
    Réponses: 9
    Dernier message: 11/10/2016, 14h48
  2. Réponses: 0
    Dernier message: 31/05/2011, 18h59
  3. Réponses: 2
    Dernier message: 27/08/2009, 17h10
  4. Mettre en majuscule la première lettre d'un mot
    Par bobosh dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 05/09/2008, 07h55
  5. Mettre en majuscule la première lettre du nom d'une nouvelle feuille excel
    Par titemireille dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 16/06/2008, 22h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo