Forum des développeurs AFPA 2016
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

[Spoiler] Justifier une phrase JAVA

Aller en bas

[Spoiler] Justifier une phrase JAVA Empty [Spoiler] Justifier une phrase JAVA

Message par Samy.C Mer 8 Juin - 13:23

Alors attention, ça ne suit pas l'algo de la correction, mais le mien, mais ça marche bien.

Code:
/*" auteur :" crossette
" date :" 8 juin 2016
" nom fichier :" Justification.java*/
public class Justification
{
   public static void main(String arg[])
   {
      char [] phrase;
      
      char [] phraseJustifiée= new char[Tab.LONGEURMAX];

      System.out.println("Phrase à justifier : ");
      phrase=Tab.saisirTab();
      
      justifierPhrase(phrase,phraseJustifiée);
      System.out.println("Phrase justifiée : ");
      Tab.affichertab(phraseJustifiée);
   }

   private static void justifierPhrase(char[] phrase, char[] phraseJustifiée)
   {   
   Entier i = new Entier() ;
   int nombreespace=0;
   int espacedebut=0;
   int espaceentrechaque=0;
   int nombredemot=0;
   int longueur=0;

   do
   {
      longueur=repererMot(phrase,i);
      nombredemot=nombredemot+1;
   }while(longueur!=0);
   
   nombredemot=nombredemot-1;
   nombreespace=compterEspace(phrase);
   
   if (nombreespace>0)
   {
      espaceentrechaque=nombreespace / (nombredemot-1);
      espacedebut=nombreespace % (nombredemot-1);
   }
         
   justifier(phrase,espacedebut,espaceentrechaque,phraseJustifiée);
      
   }
   
   private static void justifier(char[] phrase, int espacedebut, int espaceentrechaque, char[] phraseJustifiée)
   {
      int i=0;
      int k=0;

      while(k<espacedebut)
      {
         phraseJustifiée[k]=' ';
         k++;
      }
      
      while(phrase[i]!='.')
      {
         if (phrase[i]==' ')
         {
         k=k+espaceentrechaque;
         do
            {
            i++;
            }while(phrase[i]==' ');
         }
         else if (phrase[i]!=' ')
         {
            phraseJustifiée[k]=phrase[i];
            k++;
            i++;
         }

      }
      if (phrase[i]=='.')
      {
         phraseJustifiée[k]=phrase[i];
      }
   }

   private static int compterEspace(char[] phrase)
   {
      
      int occurences; //Nombre d'espaces
      int i; //Indice de parcours
      i = 0;
      occurences = 0;
      
      do
      {
         if (phrase[i]==' ')
         {
            occurences=occurences+1;   
         }   
         i=i+1;
      }while (phrase[i]!='.') ; //Compter jusqu'a rencontrer le caractère terminatoire
      return occurences;
      
   }

   private static int repererMot(char[] phrase, Entier i)
   {
      char SEPARATEUR=' ';
      int longueur;
      
      while( phrase[i.getVal()]==SEPARATEUR )
      {
      i.setVal(i.getVal()+1);
      }
      
      longueur=0;
      while((phrase[i.getVal()]!=SEPARATEUR) && (phrase[i.getVal()]!='.'))
      {
         i.setVal(i.getVal()+1);
         longueur=longueur+1;   
      }
      
      return longueur;
   }
}


Je n'ai pas mis Tab.java, mais c'est toujours le même.
Samy.C
Samy.C

Messages : 42
Karma Karma : 55
Date d'inscription Date d'inscription : 24/05/2016
Age Age : 28
Localisation Localisation : Cellule AFPA
Humeur Humeur : Gone

https://www.youtube.com/sonicdbzfan07

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum