[JAVA]Comptage caractere et opération
Carlile
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je programme en java et j'aimerais faire la chose suivante :
recuperer les caracteres d'un fichier texte par exemple, compter les nombre de caractere par ligne et si il y'en plus que 50 faire un saut de ligne dans mon nouveau fichier ou j'ai copier le texte. Je ne veux biensur pas couper un mot ...
Je sais recuperer les caracteres d'un fichier (filereader bufferedreader eetc ...)
Mais je ne sais pas du tout comment les traiter pour compter et couper les phrases trop longues etc ... Alors j'attends avec impatience votre aide !
Et merci beaucoup par avance
PS : c'est du JAVA comme il est dit dans le titre
PS 2 : En gros c'est un sorte de reformatage de texte dans un autre fichier créé.
Je programme en java et j'aimerais faire la chose suivante :
recuperer les caracteres d'un fichier texte par exemple, compter les nombre de caractere par ligne et si il y'en plus que 50 faire un saut de ligne dans mon nouveau fichier ou j'ai copier le texte. Je ne veux biensur pas couper un mot ...
Je sais recuperer les caracteres d'un fichier (filereader bufferedreader eetc ...)
Mais je ne sais pas du tout comment les traiter pour compter et couper les phrases trop longues etc ... Alors j'attends avec impatience votre aide !
Et merci beaucoup par avance
PS : c'est du JAVA comme il est dit dans le titre
PS 2 : En gros c'est un sorte de reformatage de texte dans un autre fichier créé.
A voir également:
- [JAVA]Comptage caractere et opération
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Caractère spéciaux - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
9 réponses
Salut,
En fait ce qu'il te faut trouver c'est le 1er espace situe a plus de 50 dans ta ligne.
Avec StringTokenizer tu devrais t'en sortir.
StringTokenizer STligne;
STligne = new StringTokenizer(ligne);
Cherche un peu et dis moi ce que tu en penses.
Cordialement.
Dan.
En fait ce qu'il te faut trouver c'est le 1er espace situe a plus de 50 dans ta ligne.
Avec StringTokenizer tu devrais t'en sortir.
StringTokenizer STligne;
STligne = new StringTokenizer(ligne);
Cherche un peu et dis moi ce que tu en penses.
Cordialement.
Dan.
re bonjour,
voila un exemple :
String ligne = "mot1 mot2 mot3, mot4 mot5 mot6, mot7 mot8 mot9 mot10 mot11, mot12 mot13 "
+ "mot14.";
StringTokenizer STligne;
STligne = new StringTokenizer(ligne);
int longueur = 0;
String ligneFormatee = "";
String tok = "";
while (STligne.hasMoreTokens())
{
tok = (STligne.nextToken());
longueur = longueur + tok.length() + 1; // avec l'espace qui est en fait le separateur
if (longueur <=50)
ligneFormatee = ligneFormatee.concat(tok + " "); // on ajoute l'espace ici
else
{
ligneFormatee = ligneFormatee.concat("\n"); // ajout du saut de ligne
System.out.println("nlle ligne : " + ligneFormatee); // la ligne est coupee au 1er
// espace avant le (ou au) 50eme caractere
// utilisation de ligneFormatee
ligneFormatee = ""; // et on continue
longueur = 0;
ligneFormatee = ligneFormatee.concat(tok + " ");
}
}
// le dernier mot
System.out.println("nlle ligne : " + ligneFormatee);
// utilisation de ligneFormatee (derniere partie)
voila un exemple :
String ligne = "mot1 mot2 mot3, mot4 mot5 mot6, mot7 mot8 mot9 mot10 mot11, mot12 mot13 "
+ "mot14.";
StringTokenizer STligne;
STligne = new StringTokenizer(ligne);
int longueur = 0;
String ligneFormatee = "";
String tok = "";
while (STligne.hasMoreTokens())
{
tok = (STligne.nextToken());
longueur = longueur + tok.length() + 1; // avec l'espace qui est en fait le separateur
if (longueur <=50)
ligneFormatee = ligneFormatee.concat(tok + " "); // on ajoute l'espace ici
else
{
ligneFormatee = ligneFormatee.concat("\n"); // ajout du saut de ligne
System.out.println("nlle ligne : " + ligneFormatee); // la ligne est coupee au 1er
// espace avant le (ou au) 50eme caractere
// utilisation de ligneFormatee
ligneFormatee = ""; // et on continue
longueur = 0;
ligneFormatee = ligneFormatee.concat(tok + " ");
}
}
// le dernier mot
System.out.println("nlle ligne : " + ligneFormatee);
// utilisation de ligneFormatee (derniere partie)
Ok merci beaucoup :) ca marche bien, mais aurait tu une idée pour un affichage vers un fichier (avec source dans un fichier également ...)
Merci beaucoup encore
Merci beaucoup encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut,
Je crois que c'est ce qui te conviendra !
http://www.infres.enst.fr/~charon/coursJava/fichiersEtSaisies/ecrireFichierTexte.html
Cordialement.
Dan.
Je crois que c'est ce qui te conviendra !
http://www.infres.enst.fr/~charon/coursJava/fichiersEtSaisies/ecrireFichierTexte.html
Cordialement.
Dan.
Re,
J'ai oublie de te dire que tu y trouveras la maniere de lire un fichier et d'autres choses encore,
il suffit de cliquer sur la fleche -------->
L'unique petit pb c'est la version java qui date mais...
Cordialement,
Dan.
J'ai oublie de te dire que tu y trouveras la maniere de lire un fichier et d'autres choses encore,
il suffit de cliquer sur la fleche -------->
L'unique petit pb c'est la version java qui date mais...
Cordialement,
Dan.
Et bien il manque quand meme ce dont j'ai besoin meme si ton lien va s'averer tres utile pour plus tard ;)
Moi je veux par exemple transformer un ligne de 6000 caracteres en X lignes de 17 caracteres par exemple ... (et aussi ne pas couper un mot => gerer cette exception, comment ?)
Voila, donc j'appel a l'aide encore, merci en tout cas ;)
Moi je veux par exemple transformer un ligne de 6000 caracteres en X lignes de 17 caracteres par exemple ... (et aussi ne pas couper un mot => gerer cette exception, comment ?)
Voila, donc j'appel a l'aide encore, merci en tout cas ;)
Salut,
Dans l'exemple ci-dessus, la longueur des lignes a obtenir est 50 maxi le dernier mot ne devant pas etre coupe
se retrouvera au debut de la ligne suivante (sauf si le dernier espace trouve est exactement a 50).
Il suffit de remplacer if (longueur <=50) ligneFormatee = ligneFormatee.concat(tok + " ");
par if (longueur <=17) ligneFormatee = ligneFormatee.concat(tok + " ");
Cordialement,
Dan.
Dans l'exemple ci-dessus, la longueur des lignes a obtenir est 50 maxi le dernier mot ne devant pas etre coupe
se retrouvera au debut de la ligne suivante (sauf si le dernier espace trouve est exactement a 50).
Il suffit de remplacer if (longueur <=50) ligneFormatee = ligneFormatee.concat(tok + " ");
par if (longueur <=17) ligneFormatee = ligneFormatee.concat(tok + " ");
Cordialement,
Dan.