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 :

position d'un string en fonction de sa valeur de référence


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut position d'un string en fonction de sa valeur de référence
    Bonjour les amis,

    Alors voilà mon problème

    j'ai un String :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String str = "$ojjhg + oep +  $toto";
    et en faite j'aimerai que mon programme me dise : $toto est après oep donc que me programme me donne la position de $toto en fonction de sa référence : oep.
    et qu'il me dise au passage que $ojjhg est avant oep .

    du coup je donne trois paramètres :
    - le String contenant la châine de caractère
    - la valeur recherché
    - la valeur de référence


    j'ai essayé ça mais sa n'a rien donné :
    code :


    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
    public class Test {
     
    	public static void main(String[] args) {
     
    		String str = "$ojjhg + oep +  $toto";
    		String str2 = "$toto + oep + $ojjhg ";
    		String valeurCherchée = "$toto";
    		String valeurRef = "oep";
     
     
     
     
    		if (str2.length()>0){ // en gros si le texte n'est pas vide 
    			if ((str2.substring(16, str2.length()-1)) != null){ // si 
    				System.out.println(valeurCherchée + " est après " + valeurRef );
    		}else {
    				System.out.println(valeurCherchée + " est avant  " + valeurRef );
    		}
    			}
     
    }

  2. #2
    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 : 55
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    1. C'est toujours un peu près la même question que tu poses, mais avec des différences (ou un truc en plus)
    2. Si tu résolvais directement la fonctionnalité finale, ça éviterait de passer par tout un tas de phases
    3. Tous ces problèmes peuvent se résoudre de la même manière : soit par expressions régulières, soit pas découpage (à coup d'indexOf, de split, de substring, etc.)
    4. Il me semble que je t'en avais déjà parlé, mais à voir comme à chaque fois, tu ajoutes toujours un critère de plus, on va finir par arriver à faire un parser, mais fait à coup de pleins de regexp, ou manipulation de chaines. Peut-être qu'il vaudrait mieux envisager de faire un parser (ou au moins un automate) qui génère un AST, que tu pourrais manipuler ensuite à loisir pour obtenir ces informations.


    Le code que je t'avais donné découpe la chaîne en mots en prenant comme séparateur l'espace.

    Pour détermine la variable, je cherche le mot qui commence par $ : la variable index te permet de connaitre sa position dans la liste de mots. Si tu ajoutes un test qui compare chaque mot avec ta chaîne de référence, tu connaîtras l'index de cette chaîne de référence.

    En comparant les 2 index tu peux savoir lequel est avant l'autre (et leur position).
    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.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 180
    Par défaut
    Lol

    Merci Joel , tiens j'ai fini par trouver enfinn

    code :


    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
    public class Test {
     
    	public static void main(String[] args) {
     
    		String str = "$ojjhg + oep +  $toto"; // chaîne de caractère à traite 
    		String valeurCherchee ="$toto"; // valeur à cherchee
    		String valeurRef ="oep"; // valeur de référence 
     
    		String[] split = str.split(valeurRef); 
     
    		if ( split.length > 0 ) { 
    		     String varname = split[0]; // = $ojjhg + 
     
    		     int  indice =  varname.indexOf(valeurCherchee); // = -1
     
    		         if(indice >=0) {
    		             System.out.println(valeurCherchee +" au début");
    		        }
    		        else {
     
    		        }
    		        	varname = split[1];
    		        	indice =  varname.indexOf(valeurCherchee);
    			         if(indice >=0) {
    			        	 System.out.println(valeurCherchee +" à la fin");
    			        }
    			        else {
    		             System.out.println("erreur :  " + valeurCherchee + " non trouvée");
    			}
     
    		    }
    		}
     
    	}

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

Discussions similaires

  1. Découper string en fonction de position avec strncpy
    Par ceinpap dans le forum Débuter
    Réponses: 4
    Dernier message: 20/06/2012, 17h30
  2. fonction:passage par valeur ou référence
    Par senvedgi dans le forum Débuter
    Réponses: 10
    Dernier message: 01/01/2012, 17h58
  3. JButton en fonction d'une valeur String
    Par henry.schmitt dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 04/09/2006, 00h46
  4. Position d'une popup en fonction du clic d'appel
    Par lodan dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 08/08/2006, 10h51
  5. [String] pb fonction String[] split(String regex)
    Par Kyti dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2005, 13h06

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