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 :

dernier charactère de chaine


Sujet :

avec Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut dernier charactère de chaine
    Bonjour,

    une petite question en passant
    Je fait un boolean pour "MA PHRASE" qui a comme premier caractère un chiffre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    boolean isNumber =false;
     
    try{
                    int tmp = Integer.parseInt(("MA PHRASE".charAt(0)+""));
                    isNumber = true;           
                    }
                    catch (Exception e) {
                    isNumber = false;
                }
    Ca fonctionne très bien
    Or je voudrais faire pareil sauf que c'est le dernier caractère qui doit être ou non un point '.'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            boolean isPoint =false;
            String ch = ".";
    	if (("MA PHRASE".charAt("MA PHRASE".length())+"").equals (ch)){
                     isPoint = true;
    	}
    Dois je faire une boucle ?
    Si quelqu'un a une idée
    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Mars 2007
    Messages : 53
    Par défaut
    logiquement tu accedes au dernier caractere avec length-1 (car la numérotation commence à 0)

    edit : tu peux aussi faire un simple "string.".endsWith(".") (renvoie vrai si string fini par .)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Merci ,

    Est-ce que je peux faire cela ??
    Car ça à l'air de bugger un peu...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    boolean isPoint =false;
     
    if ("MA PHRASE".endsWith(".")){
    isPoint= true;
    }

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Citation Envoyé par dantes88 Voir le message
    Merci ,

    Est-ce que je peux faire cela ??
    Car ça à l'air de bugger un peu...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    boolean isPoint =false;
     
    if ("MA PHRASE".endsWith(".")){
    isPoint= true;
    }
    Bonjour, ce code fonctionne correctement.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Je sais pas... ça traite bien mon fichier jusqu'à la moitié et après tout bug...
    Ça doit venir du fichier...

    Merci de ton aide

  6. #6
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Qu'est ce que tu appelle bugger?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Et bien c'est assez complexe,

    Je l'utilise pour parser mon texte et j'avais 8 erreurs sur 17 000 lignes:
    En fait je fais des hashtable avec tout les mot en majuscule qui sont des éléments principaux en gros...
    et il y a 8 mots a na pas prendre et la seule différence qui permet de les enlever, était qu'il termine par un point.
    Donc en gros je parcours mon document ligne par ligne avec "lu":
    dès qu'il y a une majuscule je met dans hastable:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(lu.equals(lu.toUpperCase()))
    et je voulais pour enlever "MAJUSCULE." faire un boolean avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (lu.endsWith(".")){
    				isPoint= true;
    			}
    //pour ensuite faire un if:
    if(lu.equals(lu.toUpperCase())&&(!isPoint))
    Et cela ne marche pas... et je comprend vraiment pas pourquoi en fait....

  8. #8
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Mais que veux-tu dire par ça ne marche pas?
    Ajoute des traces ou utilise un debugger pour savoir ce qui se passe dans ton programme.

  9. #9
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    tu remet bien le isPoint à false à chaque nouvelle ligne ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    ok je vais faire ça pour suivre le programme
    En fait j'affiche élément par élément avant qu'ils aillent dans la hashtable
    Et le fait de rajouter "!isPoint" Ca déregle tout.

    Pour remettre false à chaque ligne normalement c'est bon...
    Car j'ai fait un autre boolean pour enlever les chiffres et il marche bien....

    j'essaye et je vous redis.

    Merci de votre rapidité de reponse !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Ok

    le problème venait du fait qu'il y avait un espace deriere chaque ligne dans le document.

    Donc je pouvais toujours chercher le "." comme dernier caractère...

    Merci pour votre aide.

    Sujet résolu !!

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Par contre j'ai encore une question.

    je li un texte ligne par ligne "lu"
    Le texte est de la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    "salut
    je m'appelle
    dantes88.
    Je suis pas
    trèsfort
    en
    Java."
    et moi je voudrais lui dire de retourner a la ligne que lorsqu'il y a un point
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    "salut je m'appelle dantes88.
    Je suis pas trèsfort en Java."
    comment faire
    J'ai utiliser StringBuffer mais il garde les retour chariot....comment les supprimer
    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
     
    if("c'est ma selection"){ 
     
                          Hashtable currentSecondaires = new Hashtable();
                            //je créer mon stringbuffer
                        StringBuffer point = new StringBuffer();                                  
     
                             // si ya pas de point je met dans mon stringbuffer:
                            if (!isPoint){
                                point.append(""+lu);                   
                            }
                             //Si ya  un point je le met dans le stringbuffer et hop je met dans la hashtable:
                            else if(isPoint){
                                point.append(""+lu );
                                currentSecondaires.put("les titres(pas de souci ici)",point);                   
                            }                     
                       // je l'affiche pour voir si cela marche
                        System.out.print("\n" + "\t" + point);
                        }
    Si quelqu'un a une idée...
    merci d'avance

  13. #13
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    ceci devrait t aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    String test = "salut \nje m'appelle\n dantes88.\nJe suis pas\n très fort\n en\n	Java.";
    		StringTokenizer st = new StringTokenizer(test,".");
     
    		List<String> liste = new ArrayList<String>();
    		while(st.hasMoreTokens()){
     
    			liste.add(st.nextToken().trim().replaceAll("\n", ""));
    		}
    		System.out.println(liste);

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Merci pour cette réponse je vais essayer!!,
    mais je dois mettre dans une hashtable sur un document texte qui fait 17000 lignes...

  15. #15
    Membre émérite Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    bah.. de suite les grands mots ...
    teste sur quelques lignes et si ça te convient teste grandeur nature je pense que ça devrait passer

    tiens moi au courant

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 42
    Par défaut
    Yes merci

    Ca marche nikel jai mixer un peu
    Comme ça j'ai pu utiliser autre chose que des Stringbuffer

    merci jojodu31!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/11/2011, 17h09
  2. [VBA-E] test sur une chaine de charactère
    Par gruget dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 10/04/2006, 15h24
  3. [Tableaux] Suppresion du dernier caractère d'une chaine
    Par GarGamel55 dans le forum Langage
    Réponses: 15
    Dernier message: 19/02/2006, 23h27
  4. [C#][2.0] souligner un charactère d'une chaine
    Par chnew dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/02/2006, 12h52
  5. téléphone portable & chaines de charactères
    Par loupdeau dans le forum Périphériques
    Réponses: 2
    Dernier message: 08/12/2005, 19h23

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