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 :

Remplacer un caractère et l'afficher (dans un Thread)


Sujet :

avec Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut Remplacer un caractère et l'afficher (dans un Thread)
    Bonjour,

    J'ai créé la matrice suivante en Java et en mode console :

    Nom : 1.png
Affichages : 150
Taille : 4,2 Ko

    J'aimerais qu'à partir de 'R' un '*' s'affiche à chaque fois, avec comme principe de remplacer chaque '.' par '*'.

    Voici mon code
    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
    28
    29
    30
        @Override
        public void run() {
     
            String tmp;
     
            for (int i = 0; i < nbLig; i++) {
     
                for (int j = 0; j < nbCol; j++) {
     
                    if (grille[i][j] == "R ") {
     
                        for(int k = 1; k < 100; k++){
     
                            if (i - k >= 0 && grille[i - k][j] == ". ") {
     
                                tmp = grille[i-k][j];
     
                                grille[i-k][j]= "* ";
                            }
     
                            try {
                                Thread.sleep(500);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            }
        }
    Mais ça ne m'affiche rien.

    Quelqu'un saurait-il m'indiquer comment faire ?

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    En même temps, tu n'a pas une seule instruction dans ton code demandant d'afficher quoi que ce soit. Il manipule les données en mémoire et c'est tout.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut
    Désolé tchize_, je n'ai pas compris ce que vous voulez dire.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    Tu dis que ton code n'affiche rien, c'est normale puisque tu ne lui demandes pas d'afficher quoi que ce soit. Commence par ajouter ton code d'affichage si tu veux que ces boucles affichent quelque chose.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 93
    Par défaut
    je fait pour que dans chaque case il m'affiche *

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Assigner une valeur ne provoque aucun affichage.
    Si tu veux que quelque chose s'affiche, tu dois provoquer un affichage.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Ce que veut dire thelvin c'est que dans ton code il doit y avoir un System.out.println quelque part dans ton code. C'est cette partie qui s'occupe de l'affichage. Tu dois appeler cette partie si tu veux afficher tes modifications

  8. #8
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,

    Ton code n'étant pas complet, il est difficile de savoir où et comment tu provoques l'affichage de ta matrice et surtout quelle raison fait que tu as besoin de mettre un Thread.sleep dans ta boucle ?

    Cela dit, quand un code est présenté proprement (tel que je te l'ai corrigé), les erreurs peuvent devenir évidentes...
    Si tu as un Thread.sleep c'est vraisemblablement parce que par ailleurs tu dois avoir un autre Thread qui traite également l'objet grille et qui en affiche son contenu dans la console. Donc, en supposant que ce soit fait correctement, il reste donc à savoir pourquoi le code que tu présentes ne fait pas ce que tu veux. Il y a au moins 2 erreurs très classiques quand on débute en Java, c'est le fait de faire des comparaisons avec l'opérateur == sur des String. Il faut utiliser la méthode equals à la place !!

    On peut noter également que ta variable tmp, en l'état, ne te sert à rien du tout puisqu'elle est simplement positionnée avec une valeur, sans être réutilisée ensuite. Ce n'est peut-être pas très grave mais si tu comptais garder l'état initial du contenu du tableau grille, va falloir plutôt avoir un grille2, en plus de grille...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Discussions similaires

  1. Remplacement de caractères ou de mots dans un fichier texte
    Par Jerome Briot dans le forum Téléchargez
    Réponses: 4
    Dernier message: 21/09/2016, 14h03
  2. remplacer un caractère par un autre dans une QlineEDIT
    Par philippe63000 dans le forum Débuter
    Réponses: 2
    Dernier message: 10/06/2013, 14h18
  3. Remplacer un caractère par un autre dans une String
    Par djack44 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 12/03/2008, 16h16
  4. Réponses: 5
    Dernier message: 09/11/2007, 10h59
  5. Réponses: 3
    Dernier message: 21/07/2007, 02h48

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