[Spoiler] Justifier une phrase JAVA
Page 1 sur 1
[Spoiler] Justifier une phrase JAVA
Alors attention, ça ne suit pas l'algo de la correction, mais le mien, mais ça marche bien.
Je n'ai pas mis Tab.java, mais c'est toujours le même.
- 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.
Sujets similaires
» [Spoiler] Recopie phrase inversée
» Calculée java
» [Spoiler] Succession 2 Lettres Java
» [Spoiler] Manipulation des tableaux à plusieurs dimensions JAVA
» TUTOS JAVA
» Calculée java
» [Spoiler] Succession 2 Lettres Java
» [Spoiler] Manipulation des tableaux à plusieurs dimensions JAVA
» TUTOS JAVA
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|