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 :

supprimer ligne "vide"


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut supprimer ligne "vide"
    Bonjour,

    j'ai un petit programme qui me récupère le code source d'une page web. Il me rapatrie le fichier en local sur mon disque dur mais j'aimerais bien que le fichier soit plus lisible c'est à dire qu'il n'y ai pas toutes ces lignes "vides".

    J'ai mis le vide entre guillemet car il y a quand même des tabulations sur ces ligne indésirables.

    Comment dois je faire?


    le fichier dont je me suis inspiré est ici plus bas. j'ai tenté ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     	if(!inputLine.trim().equals(""))
    dans le while mais ça n'a pas l'air d'aller ou alors ça prend une éternité et je dois peut-être attendre?

    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
    import java.net.*;
    import java.io.*;
     
    public class URLConnectionReader {
        public static void main(String[] args) throws Exception {
            URL google = new URL(" http://www.google.com/search?q=site:allocine.fr "VARIABLE"&btnI=I'm%20feeling%20lucky ");
            URLConnection yc = google.openConnection();
            BufferedReader in = new BufferedReader(
                                    new InputStreamReader(
                                    yc.getInputStream()));
            String inputLine;
     
            while ((inputLine = in.readLine()) != null)
                System.out.println(inputLine);
            in.close();
        }
    }
    merci

  2. #2
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Tu peux tester avec un regex. \s représente l'ensemble des caractères "blanc".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ((inputLine = in.readLine()) != null)
    	if(!Pattern.matches("\\s+", inputLine))
    		System.out.println(inputLine);

  3. #3
    Membre régulier
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    j'ai rajouté import java.lang.*; et
    ça me met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cannot find symbol variable Pattern

    et je vois que le \s correspond [ \t\n\x0B\f\r] mais le retour à la ligne (\n) il faudrait le laisser à priori

    que faire?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    tu vas sur google

    tu tape javadoc Pattern

    tu prend le 1er lien et tu regarde la package

    java.util.regex.Pattern

    donc c'est pas dans java.lang.*

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Par défaut
    a la place de prendre \s tu utilise [ \t\x0B\f]

  6. #6
    Membre régulier
    Inscrit en
    Février 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 10
    Par défaut
    ha j'avais vu mais en voyant l'espèce de petit flèche je croyais que ça venait de java.lang.Object et donc j'ai mis import java.lang.*;

    quoiqu'il en soit j'avais déjà
    import java.util.*;
    mais ça marche pas quand meme.

    J'ai du rajouter
    import java.util.regex.Pattern;
    pour que ça marche
    bizarre je croyais qu'en mettant l'astérisque ça importait tout.

    OK pour les caractères sans le retour à la ligne.
    Je vais voir si j'arrive à quelque chose.

    Mais est ce que c'est sensé prendre du temps ou pas? Parce que le programme tourne mais il ne met jamais process complete. Donc soit j'ai une erreur dans le code, soit ça prend du temps avec le pattern.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. awk ou sed : Supprimer argument entre doubles quotes sur une ligne de fichier
    Par SuperJoker dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 18/05/2014, 21h08
  2. supprimer ligne vide
    Par SnakemaN dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 22/08/2007, 17h57
  3. supprimer lignes/cellules de tableau vides
    Par Drozo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/08/2006, 13h21

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