elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Duda Apache Commons CLI
0 Usuarios y 3 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda Apache Commons CLI  (Leído 1,644 veces)
Juanma91

Desconectado Desconectado

Mensajes: 43


Ver Perfil
Duda Apache Commons CLI
« en: 7 Noviembre 2013, 23:07 pm »

Hola compañeros, tengo una duda que no sé como resolverla:

Código:
usage: Vista.CalculadoraCLIVista
 -resta                  Calcula la resta dos operandos
 -suma             Calcula la suma dos operandosl


¿ Cómo puedo "decirle" que el args[0] equivale a resta,suma..etc?

Lo estoy haciendo con el patron MVC y el código de la vista lo tengo así , pero no estoy muy convencido que este bien..

Código:
public void realizarOperacion(String[] args,double x, double y) {
       
        // para poder pasarle el options al parser
        Options options = mostrarOpciones();

        CommandLineParser parser = new BasicParser();
        CommandLine cmd = null;
        try {
            cmd = parser.parse(options, args);
        } catch (ParseException ex) {
            Logger.getLogger(CalculadoraCLIVista.class.getName()).log(Level.SEVERE, null, ex);
        }

        if (cmd == null) {
            System.err.println("No se cargo bien el parseador de la linea de comandos");

            System.exit(-1);
        }

        if (cmd.hasOption("h") || cmd.getOptions().length == 0) {
            new HelpFormatter().printHelp(CalculadoraCLIVista.class.getCanonicalName(), options);
            return;
        }

        if (cmd.hasOption("suma")) {
            // leer los dos argumentos , convertirlos a double y realizar operacion.
           
        // "x" seria el primer operando que se le pasa," y" el segundo.
            x = Double.parseDouble(args[1]);
            y = Double.parseDouble(args[2]);
            controlador.sumar(x, y);
        }
}

  .. de tal manera que yo ponga  sumar 1 2 y la línea de comandos me devuelva 3.. :S


En línea

ThinkByYourself

Desconectado Desconectado

Mensajes: 191


Ver Perfil
Re: Duda Apache Commons CLI
« Respuesta #1 en: 8 Noviembre 2013, 15:16 pm »

Para saber si es "suma", "resta", "multiplica", "divide" el primer argumento pasado al programa puedes hacer:
Código
  1. if(args[0].equals("suma")) {...}
  2. else if(args[0].equals("resta")) {...}
  3. else if(args[0].equals("multiplica")) {...}
  4. else if(args[0].equals("divide")) {...}
  5.  
Si utilizas el operador lógico "==" puede no servirte cuando quieres comparar el contenido del objeto en sí mismo, porque Java lo que haría, usándolo con objetos (y los argumentos del programa son objetos de tipo String), sería comparar los punteros de los dos objetos, y eso puede variar, pues la JVM tiene sus propios algoritmos para hacer más eficiente el manejo de la RAM de sus programas. Por tanto, con objetos lo suyo es "objeto0.equals(objeto1)" y con tipos primitivos "primitivo0==primitivo1".
El segundo y tercer argumento tendrías que accederlos con "args[1]" y "args[2]".
Y sobre todo, esos argumentos se pasan al método de ejecución, que siempre es "public static void main(String[]args){...}", por lo cual tendrás que manejarlos partiendo de que se pasan como parámetros primeramente a este método, luego ya puedes recogerlos desde donde quieras y hacer lo que quieras.
Si buscas encuentras!
Un saludo!


En línea

No te voy a engañar.
Todos hemos sido programados para normalizar la psicopatía de las élites económicas y políticas, y para realimentar su patrón de ciega codicia.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en org.apache.commons.lang.enums al programar en Android
Java
P4nd3m0n1um 0 1,350 Último mensaje 26 Noviembre 2012, 21:45 pm
por P4nd3m0n1um
AYUDA! Como importar la libreria Apache Commons cli en el classpath « 1 2 »
Java
Juanma91 12 8,380 Último mensaje 6 Noviembre 2013, 16:12 pm
por ~ Yoya ~
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines