Rechercher un mot dans une chaîne de caractères ...

Rechercher un mot dans une chaîne de caractères ... - Java - Programmation

Marsh Posté le 22-05-2005 à 11:18:34    

Je (newbie) ne trouve pas la solution à ce problème :
 
J'ai une chaîne de caractères avec 3 mots.
 
J'aimerais trouver un moyen de pouvoir sélectionner le deuxième mot.
Ma chaîne de carctères n'est jamais la même s'agissant d'un message et je ne connais pas les mots à avance.
 
Merci pour votre contribution.


Message édité par sneakz le 22-05-2005 à 11:45:49
Reply

Marsh Posté le 22-05-2005 à 11:18:34   

Reply

Marsh Posté le 22-05-2005 à 14:00:04    

je pense qu en te basant sur un StringTokeniser, si tu connais le délimiteur entre les 3 mots, tu devrais pouvoir faire ce que tu veux :)
 
mais n'étant qu un débutant également, je laisse ma place aux experts :)

Reply

Marsh Posté le 22-05-2005 à 15:43:42    

Après une petite recherche, je me suis orienté vers la méthode split.
 
String[] mots = message.split (" " );
 
avec mots[1] par exemple qui renvoie le 2ième mot (le premier mot étant initialisé à 0).
 
Je ne sais pas si c'est la meilleure méthode. Il faut que je fasse un test avec 2 espaces insérés dans le message.

Reply

Marsh Posté le 22-05-2005 à 17:06:22    

Dans le tuto de sun il y a marqué qu'il vaut mieux utiliser split que StringTokenizer.

Reply

Marsh Posté le 22-05-2005 à 17:28:12    

merci kruso pour l'info. complémentaires.
split fonctionne correctement même avec plusieurs espaces.
 
J'ai une question complémentaire.
 
J'utilise un bouton connexion pour implémenter une connexion entre un client et un serveur.
 
JButton boutonConnexion = new JButton("Connexion" );
 boutonConnexion.addActionListener(new EcouteBoutonConnexion());
 
public class EcouteBoutonConnexion implements ActionListener {
  public void actionPerformed(ActionEvent ev) {
   try {
        }
        } catch(Exception ex)  { ex.printStackTrace();}
 
Comment faire pour qu'une fois que l'utilisateur clique le bouton connexion, il ne puisse plus le faire.
 
Merci


Message édité par sneakz le 22-05-2005 à 17:33:01
Reply

Marsh Posté le 22-05-2005 à 17:34:58    

kruso a écrit :

Dans le tuto de sun il y a marqué qu'il vaut mieux utiliser split que StringTokenizer.


Merci pour l'info ! :jap:

Reply

Marsh Posté le 23-05-2005 à 00:24:03    

Si il n'y a pas de delimiteurs c'est un probleme tres compliqué, limite NP-complet je crois. ( apres si il ya que 3 mots ca reduit les possibilités donc la complexite )
 
Il faut tout d'abord un dictionnaire de mots puis une grammaire et avec du backtrack faut rechercher la meilleure solution.
 
"T--h--e--s--e--a--r--e--t--h--e--r--e--a--s--o--n--s"
    *__*
 *_____*
 *__________*
          *_____*
                  ... etc ...
 
Sinon un peu de lecture : www.fas.harvard.edu/~libcs124/SUMMER/lec9ext.pdf


Message édité par Chronoklazm le 23-05-2005 à 00:28:09

---------------
Scheme is a programmable programming language ! I heard it through the grapevine !
Reply

Marsh Posté le 23-05-2005 à 15:20:22    

kruso a écrit :

Dans le tuto de sun il y a marqué qu'il vaut mieux utiliser split que StringTokenizer.


j'ai jamais compris pourquoi d'ailleur. Plus gourmand en ressource pour un résultat identique ... mis à part qu'on peut définir les séparateur à coup de regexp, mais bon ...
 
remarque : le split n'est dispo qu'en jdk >= 1.4


Message édité par benou le 23-05-2005 à 15:20:31

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed