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

Langage Java Discussion :

Décaller les espaces pour normaliser un texte.


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Décaller les espaces pour normaliser un texte.
    Bonjour,
    Je possède un tableau contenant un texte normalisé, , c'est à dire comme ceci :

    Ceci est un
    texte norm-
    alisé pour
    vous aider
    à visualiser.

    Mais je voudrais que les espaces à la fin de chaque lignes soient déplacés entre les mots (pour que ce soit plus bô ).
    Voici donc un petit schéma pour représenter ce que je voudrais faire (les _ étant des espaces et les X des mots )

    Petite remarque également, je voudrais que les espaces soient d'abord placé sur la gauche du texte. (voir deuxieme image)





    J'ai donc un début de 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
    public static void insertSpaces(char[] finaltab, int i)
     
    {
     
    int l = (finaltab.length - 1);
     
    char space = ' ';
     
    while(finaltab[l] == ' ')
     
    	{
     
    		int j = 0;
     
    		while(j < (finaltab.length - 1))
     
    		{
     
    			if ((finaltab[j] != space) && (finaltab[j+1] == space))
    Mais j'ai du mal à continuer... Comment lui faire comprendre qu'il doit d'abord mettre l'espace le plus à gauche possible... Bref.. si vous avez un conseil ou autre, n'hésitez pas

    D'avance merci,

    Mithandir

  2. #2
    Membre actif Avatar de djidane39
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2006
    Messages : 272
    Points : 250
    Points
    250
    Par défaut
    je comprend pas trop ce ke tu veu faire, tu peu donner un exemple?

  3. #3
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Mais je voudrais que les espaces à la fin de chaque lignes soient déplacés entre les mots (pour que ce soit plus bô ).
    tu peux preciser exactement ce que tu veux dire?
    et juste uen question comment tu connais le nombre d'espace a la fin de chaque ligne?
    Je suis ce que je suis grâce à ce que nous sommes tous Humanité aux Humains!! !

    Entre ce que je pense, ce que je veux dire, ce que je crois dire, ce que je dis ce que vous avez envie d'entendre, ce que vous croyez entendre, ce que vous entendez, ce que vous avez envie de comprendre, ce que vous comprenez ... Il y a dix possibilités que nous ayons des difficultés à communiquer. Mais essayons quand meme ....... E. Wells

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 138
    Points : 120
    Points
    120
    Par défaut
    Donc si je comprends bien, tu veux aligner ton texte à droit et à gauche, comme word peut le faire. En faite, le terme technique c'est justifier.

    Je pense que la meilleure façon de faire est de prendre tous les espaces qui sont à la fin et de les répartir entre les mots.

    Soit N1 le nombre d'espaces entre les mots (sans les espaces de la fin de ligne), et N2 le nombre d'espace a la fin de la ligne, il faut que tu ajoutes N2/N1 (arrondi a l'entier inférieur) espaces entre chaque mots. Si ce nombre n'est pas un entier, cela signifie qu'il te reste (reste de la division entiere en N2 et N1) espaces en plus que tu peux mettre ou tu veux.

    Par exemple, si tu a le message (A= une lettre et X=un espace):
    AAAXAAXAAAAXX
    N1=2 et N2=2
    Donc tu doit répartir N2/N1 = 1 espaces entre chaque mot. Résultat :
    AAAXXAAXXAAAA
    Autre exemple :
    AAXAAXAAXAXXXXX
    N1=3 et N2=5
    Donc tus doit répartir N2/N1 = 1,666 = 1 et il va te rester N2 mod N1 = 2 (5/3=1 et avec un reste de 2)
    Donc tu répartis 1 espace partout =>
    AAXXAAXXAAXXA
    Et pour répartir les 2 derniers espaces tu as le choix. Le plus simple, c'est d'ajouter 1 espace au 1er groupe d'espace, un autre espace au 2eme groupe d'espace jusqu'à que tu ai répartis tous les espaces qui restaient. Cela donne :
    AAXXXAAXXXAAXXA

    En procédant ainsi, la taille de la chaîne n'a pas changé, mais le 1er et le dernier caractère sont des lettres.

    Pour répartir le reste entre N1 et N2, tu peux si tu ne veux pas t'embêter les laisser à la fin, c'est toi qui voit.

    J'espère avoir été assez clair.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par tulipebleu Voir le message
    J'espère avoir été assez clair.
    Absolument!! Je me penche là dessus et j'essaye de transformer ça en code java ^^
    Un tout grand merci pour tes explications!!

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Revoila de mes nouvelles...
    J'ai essayé en vain de coder ce que tu m'a expliqué mais impossible d'arriver à un résultat concluant...

    Si quelqu'un pouvait jeter un oeil à la méthode et me donner un tit conseil sur ce qui ne tourne pas rond ou qui est mal "pensé"...

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    /** 
            Méthode qui va insérer des espaces pour "remplir les lignes" de finaltab.
    **/
     
    public static void insertSpaces(char[]finaltab, int i, int width)
    {
    	int n1=0;
    	int x=0;
    	while(x+1<finaltab.length)
    	{
    		if(finaltab[x] != ' ' && finaltab[x+1] == ' ')
    		{
    			n1++;
    			x++;
    		}
    		else
    		{
    			x++;
    		}
    	}
    	int w=width-1;
    	int n2=0;	
    	while(finaltab[w]==' ')
    	{
    		n2++;
                    w--;
    	}
    	int repartir=n2/n1;
    	int reste=(n2%n1);
    	x=0;
    	while(x<finaltab.length-1)
    	{
    		if(finaltab[x]==' ')
    		{		
    			for(int b=0; b<finaltab.length; b++)
    			{
    				finaltab[b]=finaltab[b-repartir];
     
    			}
    			x=x+repartir;
    		}
    		x++;
    	}
    }
    D'avance merci!

Discussions similaires

  1. Supprimer tout les espaces dans un fichier texte
    Par harry le ravi dans le forum VBScript
    Réponses: 3
    Dernier message: 26/06/2009, 10h08
  2. enlever les espace sur un champ texte
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/09/2006, 13h41
  3. [VBA-A]Remplacer les espaces dans un champ texte
    Par Ericka dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/05/2006, 15h31
  4. [HTML] formulaire gérer les espaces dans un champs texte
    Par renofx1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 12/01/2006, 14h17
  5. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 16h04

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