Rechercher : dans
Par :

[JAVA]Comptage caractere et opération

Dernière réponse le 14 avr 2008 à 21:49:14 Carlile, le 10 avr 2008 à 20:59:44 
 Signaler ce message aux modérateurs

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éé.

Configuration: Windows Vista
Firefox 2.0.0.13

Meilleures réponses pour « [JAVA]Comptage caractere et opération » dans :
Utiliser des accents et autres caractères spéciaux VoirDans la plupart des langages de programmation, on ne peut utiliser directement les accents et autres caractères non-anglosaxon. La solution est l'unicode, une sorte de code universel. Par exemple pour afficher la chaine de caractères : " là, ça...
Compter les mots dans un document (OpenOffice.org ou Word) VoirIl est parfois utile de pouvoir compter le nombre de mots ou de caractères dans un document. Les deux principales suites bureautiques permettent de le faire très simplement : Avec Word Avec OpenOffice.org Avec Word Ouvrez votre document...
Opérateurs de téléphonie mobile et les numéros utiles VoirCoordonnées des opérateurs de téléphonie mobile et les numéros utiles Liste non exhaustive SFR Orange Bouygues Telecom Virgin Mobile Tele2 NRJ Mobile M6 Mobile Neuf Mobile Debitel Breizh Mobile Coriolis Fnac Mobile
Java: les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...
Javascript: les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
WSH - Objet WshNetwork VoirWshNetwork L'objet WshNetwork contient des informations sur le réseau Microsoft Windows, ainsi que des méthodes permettant de géer (connexion, déconnexion) des imprimantes et des partages réseau. L'objet WshNetwork est obtenu en créant une...

1

Carlile, le 10 avr 2008 à 22:06:43

Aucune idée ? ....

Répondre à Carlile

2

Carlile, le 10 avr 2008 à 22:28:11

A l'aide .... :((((((((((

Répondre à Carlile

3

danimo, le 11 avr 2008 à 01:14:23

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.

Répondre à danimo

4

danimo, le 11 avr 2008 à 12:01:58

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)

Répondre à danimo

5

Carlile, le 13 avr 2008 à 23:06:56

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

Répondre à Carlile

6

danimo, le 14 avr 2008 à 02:54:43

Salut,

Je crois que c'est ce qui te conviendra !

http://www.infres.enst.fr/...

Cordialement.

Dan.

Répondre à danimo

7

danimo, le 14 avr 2008 à 03:33:27

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.

Répondre à danimo

8

Carlile, le 14 avr 2008 à 17:06:01

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 ;)

Répondre à Carlile

9

 danimo, le 14 avr 2008 à 21:49:14

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.

Répondre à danimo