## Analizar Argumentos de la Línea de Comandos

Este programa, llamado ParseCmdLine, proporciona una forma básica para construir tu propio analizador de argumentos:

    class ParseCmdLine {
        public static void main(String[] args) {

            int i = 0, j;
            String arg;
            char flag;
            boolean vflag = false;
            String ficheroSalida = "";

            while (i < args.length && args[i].startsWith("-")) {
                arg = args[i++];

        // Utiliza este tipo de chequeo para argumentos de "palabra"
                if (arg.equals("-verboso")) {
                    System.out.println("modo verboso mode activado");
                    vflag = true;
                }

        // Utiliza este tipo de chequeo para argumentos que requieren argumentos
                else if (arg.equals("-output")) {
                    if (i < args.length)
                        ficheroSalida = args[i++];
                    else
                        System.err.println("-output requiere un nombre de fichero");
                    if (vflag)
                        System.out.println("Fichero de Salida = " + ficheroSalida);
                }

        // Utiliza este tipo de chequeo para una serie de banderas
                else {
                    for (j = 1; j < arg.length(); j++) {
                        flag = arg.charAt(j);
                        switch (flag) {
                        case 'x':
                            if (vflag) System.out.println("Opción x");
                            break;
                        case 'n':
                            if (vflag) System.out.println("Opción n");
                            break;
                        default:
                            System.err.println("ParseCmdLine: opción ilegal " + flag);
                            break;
                        }
                    }
                }
            }
            if (i == args.length)
                System.err.println("Utilización: ParseCmdLine [-verboso] [-xn]
    			[-output unfichero] nombre de Fichero");
            else
                System.out.println("Correcto!");
        }
    }

Acepta un argumento de cada uno de los tipos: un argumento de palabra, un argumento que requiere un argumento y dos banderas. Además, este programa necesita un nombre de fichero. Aquí tienes una sentencia de utilización de este programa:

    Utilización: ParseCmdLine [-verboso] [-xn] [-output unfichero] nombrefichero

Los argumentos entre los corchetes son opciones: el argumento nombrefichero es obligatorio.

Ozito