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 :

Contenu d'une liste dans un String


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 78
    Par défaut Contenu d'une liste dans un String
    Bonjour,

    j'ai un petit soucis avec une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    String crlf        = "\r\n";
    String visu = "";
    List<String> result = new ArrayList<String>();
     
    ... je remplis ma liste soit 206 enregistrements...
     
    Iterator<String> it = result.iterator();
    while (it.hasNext()){
       visu = visu.concat(it.next().concat(crlf));			
    }
    En sortie de boucle, ma variable "visu" ne contient qu'une partie des enregistrements...
    J'ai essayé avec un StringBuffer.....même problème.

    Merci de votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Le problème est dans la partie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... je remplis ma liste soit 206 enregistrements...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 78
    Par défaut
    pourtant j'ai bien 206 enregistrements dans ma variable "result"...

  4. #4
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    Si tu n'as qu'une partie de l'info, c'est que la boucle à l'air de marcher

    - Soit ta chaine de caractères dépasse la limite en tailles (ce que veut dire le post précédent) souvent 256 caractères
    Pour valider cette possibilité tu compte le nb de caractère en fin de boucle
    tu réessaie ta boucle avec d'autre valeur et tu recompte

    - Soit ta condition de sortie est loupée, ça arrive parfois que des suites de caractères concaténées finissent par faire une combinaison de fin de chaine (ça m'est déjà arrivé ... )

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 78
    Par défaut
    Merci pour ta réponse.

    je pencherai plus pour la deuxième hypothèse car mon premier enregistrement dépasse les 256 caractères or j'arrive à visualiser les 6 premiers enregistrements...
    Je vais regarder sur le net ce problème de "concaténations successives" mais si tu te souviens de ce que tu avais fait ça m'intéresse

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par BROWNY Voir le message
    - Soit ta chaine de caractères dépasse la limite en tailles (ce que veut dire le post précédent) souvent 256 caractères
    Pour valider cette possibilité tu compte le nb de caractère en fin de boucle
    tu réessaie ta boucle avec d'autre valeur et tu recompte
    Non. Il n'y a aucune limitation de ce genre en Java et avec la concaténation utilisée.

    Citation Envoyé par anakin59490 Voir le message
    Je vais regarder sur le net ce problème de "concaténations successives" mais si tu te souviens de ce que tu avais fait ça m'intéresse
    C'est vrai que c'est tellement plus sûr que juste nous montrer ton code erroné pour qu'on te dise où est l'erreur...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 78
    Par défaut
    Disons que je vois pas trop l'intérêt dans le sens ou ma liste contient bien les enregistrements mais bon... voila le code de ma méthode
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    public String reconcil(String body) throws InterfacesServicesException{
     
    		int totRecord = 0;
    		int totAmnt = 0;
    		String visu = "";
    		String crlf        = "\r\n";
    		List<String> result = new ArrayList<String>();
     
    		try {
    			// create a StreamFactory
    			StreamFactory factory = StreamFactory.newInstance();
     
    			factory.loadResource("META-INF/csd/beanio/mapping-payment.xml");
     
    			// create an Unmarshaller to unmarshal bean objects from record text
    			Unmarshaller unmarshallerCheck = factory.createUnmarshaller("minosReconciliation");
    			Unmarshaller unmarshallerStore = factory.createUnmarshaller("all");
     
     
     
    			StringTokenizer st = new StringTokenizer(body, crlf);
     
    		    while (st.hasMoreTokens()) {
     
    		        try {
    			    	String line = st.nextToken();
     
    			    	Object record = unmarshallerCheck.unmarshal(line);
     
    			    	// header and payment record
    					if (!(record instanceof TrailerPaymentBean)) {
     
    						if (record instanceof RecordPaymentBean) {
    							totAmnt += ((com.hp.mc.csd.bean.RecordPaymentBean)record).getAmount();
    							totRecord++ ;
    						}
     
    						result.add((unmarshallerStore.unmarshal(line)).toString());
    						// result.append(crlf);
     
     
    					} else {
    						// trailer record
    						((com.hp.mc.csd.bean.TrailerPaymentBean)record).setTotalAmount(totAmnt);
    						((com.hp.mc.csd.bean.TrailerPaymentBean)record).setCount(totRecord);
    						result.add((record).toString()); 
    						// result.append(crlf);
     
    					}
     
    		    	} catch (org.beanio.UnidentifiedRecordException ure) {
    		    		// NOP
    		    	}
    		     }
     
    		    Iterator<String> it = result.iterator();
    			while (it.hasNext()){
    				visu = visu.concat(it.next().concat(crlf));			
    			}
     
     
    		} catch (Exception e) {
    			throw new InterfacesServicesException(e.getMessage());
    		}
     
     
    		return visu;
     
    	}
    Pour faire simple :

    je reçois un fichier en entrée (body) qui contient x enregistrements et je filtre via un fichier de config ceux qui m'intéressent. Ensuite je dois les retourner sous forme d'un string (conçu de la même manière que "body") c.a.d : 1er enreg, retour à la ligne, 2ème enreg, retour à la ligne, etc...

    Voila ...

  8. #8
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Ah, bon, j'ai dû confondre avec un autre truc alors
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/06/2015, 17h52
  2. Comment afficher le contenu d'une liste dans un label ?
    Par khadi8 dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 20/03/2012, 07h43
  3. mettre le contenu d'une liste dans un fichier EXCEL
    Par john_wili dans le forum Jasper
    Réponses: 1
    Dernier message: 13/01/2009, 11h22
  4. Réponses: 13
    Dernier message: 18/05/2007, 16h06
  5. Ecrire le contenu d'une List dans un fichier
    Par sabure dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/05/2006, 16h33

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