[java]Découpe de string pour exécuter la fonction associée

Découpe de string pour exécuter la fonction associée [java] - Java - Programmation

Marsh Posté le 31-01-2004 à 02:33:43    

Je dispose d'un programme qui doit traiter des phrases en entrée (que l'utilisateur tape par exemple). Ces phrases sont en fait des commande, généralement du style: commande,arg1,arg2...
J'ai pas mal de commandes différentes, et une même commande peut avoir un nombre variable d'arguments.
Pr l'instant je pense utiliser les StringTokenizer pr découper les phrases: 'commande' me donnera la fonction à utiliser et 'arg1' ses arguments. Ms bon, je trouve pas cette méthode super jolie.
On m'avait parlé d'utiliser le parseur xalan, ms d'après ce que j'en ai compris, il permet de transformer du xml, et je vois pas comment je pourrais l'utiliser ds mon cas.
 
Alors si qq1 a une idée pr mon pb je suis preneur.
Et merci d'avance :)

Reply

Marsh Posté le 31-01-2004 à 02:33:43   

Reply

Marsh Posté le 31-01-2004 à 08:56:27    

bin c'est quoi ton pattern déjà?
 
commande,arg1,arg2,arg3 et tu veux avoir d'un coté commande et de l'autre String[]args ?
 
bin ouais StringTokenizer sur "," alors.

Reply

Marsh Posté le 31-01-2004 à 20:53:15    

Le format définitif n'est pas encore fixé, ça peut être:
-commande,arg1,arg2,arg3
ou
-<commande>cmd</commande><arguments><arg>arg1</arg><arg>arg2</arg></arguments>
 
En fait je me posais la question de la manière la plus jolie pr faire ce travail.

Reply

Marsh Posté le 31-01-2004 à 20:55:46    

StringTokenizer c'est bien, sinon si tu as les expressions régulières

Reply

Marsh Posté le 31-01-2004 à 21:04:48    

Code :
  1. [21:04:12][pts/3][~/Java/tmp][#159]
  2. benoit@athlon >> cat command.java
  3. public class command
  4. {
  5.     public static void main(String args[])
  6.     {
  7.         String parts[] = args[0].split(args[1]);
  8.         for(int i=0; i<parts.length; ++i)
  9.             {
  10.                 System.out.println(parts[i]);
  11.             }
  12.     }
  13. }


 

[21:04:25][pts/3][~/Java/tmp][#160]
benoit@athlon >> jikes-sun command.java
 
[21:04:30][pts/3][~/Java/tmp][#161]
benoit@athlon >> kaffe command 'commande,arg1,arg2,arg3' ','
commande
arg1
arg2
arg3
 
[21:04:33][pts/3][~/Java/tmp][#162]
benoit@athlon >> kaffe command '<commande>cmd</commande><arguments><arg>arg1</arg><arg>arg2</arg></arguments>' '<[^>]+>'
cmd
arg1
arg2


Message édité par Taz le 31-01-2004 à 21:05:18
Reply

Marsh Posté le 31-01-2004 à 21:06:41    

tiens je savais pas que java avait les correspondances non-glountones
 
'<[^>]+>' -> '<.+?>'

Reply

Marsh Posté le 31-01-2004 à 21:34:44    

Ouais enfin dans le cas d'un fichier pseudo-XML, t'as toujours les packages en org.w3c et javax.xml.parsers qui peuvent faire la grosse partie du boulot :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 31-01-2004 à 22:50:40    

Merci, pr vos réponses, je vois tt ça et vous donne des nlles demain ;)

Reply

Sujets relatifs:

Leave a Replay

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