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 :

Contrôle d'une String et valeur de retour


Sujet :

avec Java

  1. #1
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut Contrôle d'une String et valeur de retour
    Salut

    Quelqu'un connaîtrais-t-il une méthode qui permettrait de scanner une String, et d'en extraire chacun des caractère pour les utiliser après?
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  2. #2
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Bonjour,
    la classe String possède différentes méthodes, comme charAt, substring, indexOf, matches... permettant de l'analyser.
    As-tu regardé la javadoc de cette classe?

    Que veux-tu faire exactement?
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  3. #3
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    oui, j'ai regardé mais rien ne correspond à ce que j'attends, ce que je recherche est plutôt une méthode "artisanal", qui me permettrait d'extraire chacun des caractère d'une string pour leur appliquer un traitement du genre:

    if (le premier char de "abcd" est "a")
    {
    a = x
    }
    etc.. pour chacun des caractère de la String.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  4. #4
    Membre averti Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Points : 307
    Points
    307
    Par défaut
    Tu as essayé un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String[] t = new String("toto").split("");
    System.out.println(t);
    ?
    Le split("") te permet de spliter et d'obtenir dans un tableau de string chaque caractère. Ce n'est surement pas la chose la plus propre qu'il soit, j'en conviens mais ça correspond à tes attentes me semble t-il.
    « War is peace. Freedom is slavery. Ignorance is strength. » - George Orwell

  5. #5
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    Tu as la méthode toCharArray() qui te renvoie un char[] correspondant à ta String. Tu peux alors modifier ces caractères un par un.

    Pour revenir à une String après ton traitement tu as le constructeur new String(char[])
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    effectivement c'est pas très propre, d'autant que String dispose d'une méthode toCharArray!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char[] tableau = laChaine.toCharArray();
    // modifier le tableau comme vous voulez
    laChaineNouvelle = new String(tableau);
    edit: grillé par le toutou d'Obélix.

  7. #7
    Membre averti Avatar de ZnhaarX
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 146
    Points : 307
    Points
    307
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    effectivement c'est pas très propre, d'autant que String dispose d'une méthode toCharArray!
    Oui je viens de voir ça
    Il y a trop de méthodes qu'on s'y perd... Autant choisir les trucs moches, pas propres et complexes
    « War is peace. Freedom is slavery. Ignorance is strength. » - George Orwell

  8. #8
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    D'où l'importance d'avoir toujours un raccourci vers l'API java

    C'est quand même mieux d'utiliser une méthode standard plutôt qu'une longue bidouille
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  9. #9
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Aie, j'aime pas les tableaux, j'ai toujours du mal avec.
    J'ai donc utilisé la méthode toCharArray().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char [] tableau = maString.toCharArray ();
    		for (int i=0;i<tableau.length;i++)
    		{
    	            // traitements
    		}
    Maintenant comment je peut faire pour ressortir l'élément 1 du tableau?
    Si je ne me trompe pas dans un tableau, le premier index commence à 1?!

    je voudrais faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (tableau."element1" = "a")
    {
        attribué à la nouvelle String une valeur de son élément1 de mon choix
    }
    if (tableau."element2" = "b")
    {
        attribué à la nouvelle String une valeur de son élément1 de mon choix
    }
    Je sais me déplacer dans un Vector mais pas dans un tableau.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  10. #10
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Ah j'ai trouvé charAt(), je vais tester avec cette méthode.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  11. #11
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    non, un tableau commence par 0, pas 1!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    String s = "abc";
    char[] cs = s.toCharArray();
    for(int i=0; i<cs.length; i++) {
        switch(i) {
            case 0: if(cs[i]=='a') cs[i] = 'x'; break;
            case 1: if(cs[i]=='b') cs[i] = 'y'; break;
            case 2: if(cs[i]=='c') cs[i] = 'z'; break;
            default: throw new RuntimeException("out of bounds!");
        }
    }
     
    String result = new String(cs); // xyz
    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  12. #12
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    hum, j'ai un tableau de 2 caractères spéciaux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String	 valA	= "#";
    String	 valB	= "@";
    String[] caractere = {valA, valB};
    et je souhaiterais dans mon if opposé les caractères de ma String à ce tableau, alors j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    char [] tableau = maString.toCharArray ();
    String motEnTransformation = new String (tableau);
    for (int i=0;i<tableau.length;i++)
    {
    	if (motEnTransformation .charAt (i) ==  
    }
    mais je ne peut mettre de .equals() à la place des ==.
    Il faudrai que je puisse balayer le [] caractere et le comparer à motEnTransformation.

    edit: Ah je n'avais pas vu ton post, je vais tester le switch, et en plus c'est débile ce que j'ai dit lorsque je demande si un tableau comment par 1 ou 0 étant donné que je met un int i=0, mais c'est la faim qui commence !!!
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  13. #13
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    arf, pour certains des char je doit mettre "[%]", mais ce n'est pas valide en char, alors j'ai une erreur de format.

    Devrai-je convertir tous le tableau de char en un tableau de String?

    edit: Après essaie du switch avec cette petite modif:
    '[' + '%' +']'

    il me retourne la conversion du premier caractère seulement,
    j'ai fait un essai avec abab:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    char [] tableau = motAConvertir.toCharArray ();
    for (int i=0;i<tableau.length;i++)
    {
        switch(i) {
    	case 0: if(tableau[i]=='a') tableau[i] = '5'; break;
    	case 1: if(tableau[i]=='b') tableau[i] = '[' + '%' +']'; break;
    	case 2: if(tableau[i]=='c') tableau[i] = 'z'; break;
    	default: throw new RuntimeException("out of bounds!");
        }
    }		
    String result = new String(tableau);
    il me retourne 4a pour aa
    4ù pour ab
    ba pour ba
    et
    Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: out of bounds! pour abab
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  14. #14
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    ça à l'air très confus dans ta tête tout ça....

    peux-tu déjà nous expliquer clairement ce que tu veux faire: qu'as-tu en entrée, et que veux-tu en sortie?

    EDIT: un char n'est pas une string: il ne peut contenir qu'un seul et unique caractère!

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  15. #15
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Ben en fait c'est l'effet tableau qui provoque ça chez moi .

    je doit créer un soft de conversion, on rentre un mot, et le soft doit le transformer en un code, le problème est que dans les règles de gestion du soft,
    certain caractères sont du genre [%] ou encore |>, en plus des chiffres et lettres. L'un des exemples de travail de la version test du code qu'on m'a fournis est :
    étoile
    ce mot doit devenir:
    4& R; <w }_) @ù 4
    j'ai espacé pour que vous voyez à quoi correspond chaque caractère du mot étoile.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pill_S: c'est pas la forme aujourd'hui: une boucle avec un switch pour pas faire un if-then-else???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for(int i=0; i<cs.length; i++) {
        switch(i) {
            case 0: if(cs[i]=='a') cs[i] = 'x'; break;
            case 1: if(cs[i]=='b') cs[i] = 'y'; break;
            case 2: if(cs[i]=='c') cs[i] = 'z'; break;
            default: throw new RuntimeException("out of bounds!");
        }
    }
    aurait du être codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (cs.length>0 && cs[0]=='a') cs[0]='x';
    if (cs.length>1 && cs[1]=='b') cs[1]='y';
    if (cs.length>2 && cs[2]=='c') cs[2]='z';
    if (cs.length>3)
        throw new RuntimeException("out of bounds!");
    L'itération n'ayant aucun sens (quand on fait un boucle avec un switch sur son index, c'est que la boucle n'a pas de ses

  17. #17
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Tora là tu ne transforme pas un caractère en un autre, tu remplace un caractère par un ou plusieurs autres, c'est pas tout à fait la même logique.

    voici un embryon de code à compléter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private String convertCharacter(char c){
       // a coder, retourne le code auquel correspond un charactère
    }
    private String convertString(String s){
       StringBuilder sb = new StringBuilder();
       for (char c : s.toCharArray()){
           sb.append(convertCharacter(c));
       }
       return sb.toString();
    }

  18. #18
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    ce que vous proposez implique que je doit faire autant de if que j'ai de caractère possible pour la première lettre avec autant de then que j'ai de caractère possible en retour. hum, par exemple, si je me limite à l'alphabet de a à z sans les caractère avec accent ou autre, de devrais faire 26 if pour le premier caratère, 26 pour le second.

    c'est bien ca?
    édit: avait pas le post affiché je go tester.
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

  19. #19
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 8
    Points
    8
    Par défaut
    La transcription d'un caractère de la première case de ton tableau d'entrée et la transcription du même caractère mais dans la seconde case n'est pas la même ?

  20. #20
    Membre régulier Avatar de Tora21
    Homme Profil pro
    Développeur("Java"); //Débutant
    Inscrit en
    Mai 2011
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur("Java"); //Débutant

    Informations forums :
    Inscription : Mai 2011
    Messages : 140
    Points : 116
    Points
    116
    Par défaut
    Ben normalement si
    Ah ça y’est, j’viens de comprendre à quoi ça sert la canne. En fait ça sert à rien… Du coup ça nous renvoie à notre propre utilité : l’Homme face à l’Absurde !

    -Perceval-

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Débutant] Convertir une "String" en valeur "numeric"
    Par caroe.lavoie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/08/2013, 11h17
  2. Valeur de retour d'une procédure stockée
    Par Rudyweb dans le forum MFC
    Réponses: 4
    Dernier message: 25/02/2005, 17h52
  3. [VB6] Valeur de retour pour une Form
    Par preverse dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/08/2004, 17h16
  4. Valeur de retour d'une procédure externe
    Par elekis dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 16/04/2004, 16h45
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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