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

avec Java Discussion :

java parser du text


Sujet :

avec Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Par défaut java parser du text
    Bonjour,
    j'ai une paragraphe qui contient de text.certains mots dans ma paragraphe sont des variables référencés par {var1} par exemple.
    c'est quoi la meilleure façon de faire, pour parser ma paragraphe, et remplacer à la volée la variable {var1} par le contenu correspondant(qui est le résultat d'une requete)
    merci

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    A mon avis, pour un tel problème, il faut que tu utilises les expressions régulières pour trouver tes différentes variables.

    Tu crées donc un Matcher m avec ton expression régulière, et tu boucles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while(m.find()) {
       // ta requete...
       // ton remplacement...
    }
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Un exemple d'implémentation :
    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
    	public static String replaceVariable(String input, Map<String,String> map) {
    		Matcher m = Pattern.compile("\\{(.*?)\\}").matcher(input);
     
    		if (m.find()) {
    			// Création du buffer temporaire :
    			StringBuffer sb = new StringBuffer(input.length());
    			do {
    				// On récupère le nom de la variable :
    				String name = m.group(1);
    				// Et on effectue le remplacement :
    				m.appendReplacement(sb, map.get(name) );
    			} while (m.find());
    			// Copie de la fin de la chaine :
    			m.appendTail(sb);
     
    			// On retourne la nouvelle chaine :
    			return sb.toString();
    		}
    		// Pas de modif :
    		return input;
    	}
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    		String str = "{var1} et {var2} sont dans un bateau... {var1} tombe à l'eau ? ";
    		Map<String,String> vars = new HashMap<String, String>();
    		vars.put("var1", "Pince-mi");
    		vars.put("var2", "Pince-moi");
     
    		System.out.println( replaceVariable(str, vars) );
    a++

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 113
    Par défaut
    merci beaucoup, ton programme marche nikel..
    sinon une autre question plutot de conception :
    mon but au final est de lancer un batch qui execute le meme programme pour chaque etudiant
    c quoi la meilleur methode, pour chaque fois, initianliser la map, la remplir par les informations concernant tel etudiant et apres le vider pr ne pas charger la memoire..?

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Si c'est un véritable batch qui exécute ton programme en boucle, tu n'as pas à t'occuper de vider ta Map.
    Pour chaque étudiant, ton batch va créer un JVM qui va effectuer le traitement, et qui libèrera la mémoire en se fermant (une fois le traitement terminé)

    Par contre, si ta boucle qui parcours tous les étudiants directement en java, il vaut mieux effectivement vider ta Map entre les traitements de deux étudiants.

    Pour te former voir ces tutoriels pour apprendre Java : http://java.developpez.com/cours/
    Mon préféré : le cours Java de jmdoudou est vraiment au top : http://jmdoudoux.developpez.com/cours/developpons/java/
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

Discussions similaires

  1. code java dans fichier texte
    Par nicotine002 dans le forum Langage
    Réponses: 7
    Dernier message: 23/01/2007, 10h48
  2. [débutant java] Spliter un texte en utilisant Tokenizer
    Par peligroso dans le forum Langage
    Réponses: 7
    Dernier message: 24/11/2006, 21h47
  3. parser fichier texte pour avoir un doc html !!
    Par avogadro dans le forum Débuter
    Réponses: 4
    Dernier message: 30/03/2006, 16h12
  4. [XML][Java] parser plusieurs fichiers en un seul arbre DOM ?
    Par mrlenul dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 29/11/2005, 11h09

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