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 :

Conseils en Java


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut Conseils en Java
    bonjour a tous ,

    je suis débutant en programmation java,mais j'ai déjà quelques notions de programmation en python
    j'aimerais pour m’entraîner faire un fonction qui compte le nombre de caractères dans un objet de type String (comme le fais si bien la méthode length() ) mon problème c'est que je sais pas comment on parcours une chaines de caractères en java sans passer la méthode length() pourriez vous m'expliquer cela?

  2. #2
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Citation Envoyé par lil_formaticiin Voir le message
    mon problème c'est que je sais pas comment on parcours une chaines de caractères en java sans passer la méthode length() pourriez vous m'expliquer cela?
    Je ne comprends pas très bien ton but.. Tu veux parcourir ta String pour l'analyser caractère par caractère ?

    Tu peux utiliser toCharArray() qui va te retourner le tableau de char correspondant à ta String. Ou alors charAt(int index) qui te retourne le char à l'index correspondant. Dans tous les cas tu vas avoir besoin de la taille de la String pour boucler et pouvoir t’arrêter quand il faut.

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    pour moi ça n'a pas de sens en java. On est pas comme en c ou une chaîne de caractères est une suite de caractères en mémoire terminée par \0, par exemple.

    Pour parcourir les caractères d'une chaîne java, utilisant la classe String sous entendue, se doit de passer par une itération sur les position de 0 à string.length()(exclus).

    On peut bien entendu écrire un truc comme ça :

    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
    public static void main(String[] args) {
     
     
    		String s = "abcdef";
     
    		int n=0;
    		try {
    		while(true)s.charAt(n++);
    		}
    		catch (StringIndexOutOfBoundsException e) {
    			n--;
    		}
    		System.out.println("Taille la chaine: " + n);
     
    	}
    mais c'est de la bidouille pas propre pour moi. Sans parler de la complexité de l'écriture.

    Tu pourrais aussi appeler getBytes() et compter les séries d'octets en fonction des octets s'y trouvant, des caractères correspondants et des nombres d'octets qu'ils prennent en fonction de l'encodage, histoire de bien se compliquer la vie pour rien
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    enfaîte, j'aimerais(just histoire de m'entrainer a programmer) ,reproduir le mem resultat que la méthode length produit sur un objet String et de ce fait j'aimerais savoir comment puis-je examiner mon objet String (parcourir la string sans justement utiliser la méthode lentgh()
    exemple : jai une fonction qui prend en paramètre une chaîne de caractère et qui renvoit un entier c'est a dire le nombre de caractère de la String passer en paramètre

  5. #5
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    La méthode proposé par joel.drigo fait exactement ce que tu veux. Mais honnêtement je n'ai même pas osé l'écrire dans mon poste précédent car ça n'a vraiment aucun sens de faire ça..

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu peux pas te passer de length() pour parcourir les caractères d'une chaines, sans faire une bidouille comme j'ai mis dans le post précédent.

    Même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "abcdef".toCharArray().length;
    pour moi revient au même que d'appeler length() sur String, à la différence que ca prend plus de temps et plus de mémoire et que ça complique l'écriture du code.

    Si tu veux t'entraîner à la programmation en java, il y'a plein d'autres exemple simple de cas pour ce faire, que tu peux trouver dans des tutoriels par exemple.

    Si tu veux un sujet d'entraînement sur les chaines, tu peux par exemple, compter les mots dans une chaîne, soit compter les espaces (ça va pas loin certes). Donc avec String.length() et String.charAt(int index)...
    Ou compter les suites de caractères qui se suivent dans l'alphabet...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    catch (StringIndexOutOfBoundsException e) {
    			n--;
    		}
    pourais tu mexpliquer? please

  8. #8
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Block try/catch

    Ça sert pour la gestion des erreurs en java.

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par lil_formaticiin Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    catch (StringIndexOutOfBoundsException e) {
    			n--;
    		}
    pourais tu mexpliquer? please
    Je fais une boucle infinie (while(true)) qui lit chaque caractère d'index n, et incrément n. Or lorsqu'on appelle la méthode charAt(index) avec un index supérieur ou égale à la longueur de la chaîne, on obtient une exception StringIndexOutOfBoundsException.
    Ici dans ce code, j'intercepte l'exception lors que n dépasse la taille de la chaîne et je décrémente n, puisqu'il est plus grand de 1 par rapport à la taille de la chaîne, lors de la première interception. L'exception faisant sortir de la boucle, on continue et on affiche le résultat.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    ok super j'ai pigé jpense que jvais chercher un ot exo pour mentrainer dsl jsuis un pe novice en programmation donc dsl si jpose des topic un cheche

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Je fais une boucle infinie (while(true)) qui lit chaque caractère d'index n, et incrément n. Or lorsqu'on appelle la méthode charAt(index) avec un index supérieur ou égale à la longueur de la chaîne, on obtient une exception StringIndexOutOfBoundsException.
    Ici dans ce code, j'intercepte l'exception lors que n dépasse la taille de la chaîne et je décrémente n, puisqu'il est plus grand de 1 par rapport à la taille de la chaîne, lors de la première interception. L'exception faisant sortir de la boucle, on continue et on affiche le résultat.
    si j'ai bien compris enfaite catch
    sert just a levée lexception cool

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je pense surtout que tu devrais commencer par un tutoriel de java pour débutant, logiquement. Comme ceux qui sont sur ce site par exemple : http://java.developpez.com/cours/.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par lil_formaticiin Voir le message
    si j'ai bien compris enfaite catch
    sert just a levée lexception cool
    En fait, à l'intercepter. Pour lever une exception on utilise throw ou throws.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    En fait, à l'intercepter. Pour lever une exception on utilise throws.
    euh c quoi la diférence?

  16. #16
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    C'est comme au baseball, y'en a un qui lance (throws) et l'autre qui attrape (catch)

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si dans ton code, tu as un cas que tu ne peux pas résoudre parce que les paramètres sont incomplets ou incorrectes, tu vas lever une exception (ou une erreur) pour informer le code appelant que tu ne peux pas exécuter le code.

    L'interception elle va permettre de traiter l'erreur, comme par exemple afficher un message à l'utilisateur que son action est impossible avec la raison de cette impossibilité.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #18
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 32
    Points : 25
    Points
    25
    Par défaut

  19. #19
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    En supplément, pour être plus précis,

    il faudrait ajouter que throws placé à la fin de la définition de la signature d'une méthode indiquera qu'on désire laisser le code appelant traiter les catch éventuels de l'exception précisée après le throw, si elle était levée par un code appelée dans cette méthode.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static char getUpperCase(String s, int index) throws StringIndexOutOfBoundException {
        return Character.toUpperCase(s.charAt(index));
    }
    et que throw sert à lever une l'exception de son choix à un endroit précis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static char getUpperCase(String s, int index)  {
        if (index>=0 && index<s.length()) {
        return Character.toUpperCase(s.charAt(index));
        }
        else {
            throw new IllegalArgumentException("Index " + index + " is out of string " + s + "!");
        }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

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

Discussions similaires

  1. Conseil bibliographie Java
    Par pimprenelle77 dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 05/06/2012, 10h00
  2. Conseil: certif Java ?
    Par spilliaert dans le forum Certifications
    Réponses: 1
    Dernier message: 06/05/2010, 12h44
  3. Conseil formation Java 13
    Par chess dans le forum Général Java
    Réponses: 1
    Dernier message: 27/02/2008, 12h22
  4. Conseil livre Java EE
    Par ®om dans le forum Java EE
    Réponses: 3
    Dernier message: 15/01/2008, 11h09
  5. [conseils]Java ou web
    Par le Daoud dans le forum Etudes
    Réponses: 5
    Dernier message: 09/05/2005, 23h01

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