Asterisco como argumento

jenny
03 de Diciembre del 2007
Buenas compañeros, he estado probando algunas cosas, y cuando ejecuto una clase java con un método main, uno d elos argumentos que le paso a dicha función es un asterisco (*), pero cuando depuro me encuentro con que el asterisco lo sustituye como por una serie de extensiones, o ultimas clases consultadas, intento poniendole '\' y '\' primero, pero en el primer caso sigue ocurriendo lo mismo, y en el segundo lo que obtengo es '\*' cuando loq ue me interesa es obtener el asterisco únicamente. La verdad es que he consultado con colegas pero a ninguno le ha ocurrido nada por el estilo...

Es decir envío como parametros por ejemplo 5 * 5, y recibo el array de esta manera:
[5, .classpath, .project, .svn, bin, null, pom.xml, src, target, 5]...
Bueno si alguien sabe como puedo usar el asterisco como argumento que me ayude.
Mil gracias

osksp
03 de Diciembre del 2007
Tienes que tomar toda la cadena de parámetros como un único String => "5 * 5" e introducirlo como tal, es decir, a la hora de ejecutar: java Clase 5*5, en el main tendras que tener:

public static void main(String args[]){
String entrada = args[0];
....
}

y después ir leyendo el String entrada para ver si te pasan números y asteriscos o lo que necesites. Otra opción es ponerlo por separado:

java Clase 5 * 5

en cuyo caso tienes que evaluar las entradas una por una:

public static void main (String args[]){
String input1 = args[0];
String input2 = args[1];
String input3 = args[2];
...
}

y luego tendrás que evaluar cada input y convertirlo en lo que necesites (número, operador...)

Espero haberte ayudado.

Jenny
03 de Diciembre del 2007
Si, muchas gracias osksp, eso lo entiendo... pero mi problema viene cuando los intento tratar por separado, es como si el asterisco no lo entendiera y me pone en su lugar un montón de registros dentro del array que son como extensiones o no se qué!
Es decir, yo introduzoco 5 * 5 todo separado, y en lugar de tener un array tal que
args[0] == 5
args[1] == *
args[2] == 5

Me resulta:
args[0] == 5
args[1] == .classpath
args[2] == .svn
args[3] == pom.xml
args[4] == 5

Y no sé de dónde ha sacado lo que hay en las posiciones 1, 2 y 3, porque yo en su lugar he pasado un asterisco!!!
:-O

osksp
03 de Diciembre del 2007
Ok, mil perdones, habia interpretado mal el mensaje.

La verdad es que no se por qué ocurre esto, supongo que será porque el asterisco esté reservado como símbolo para rutas... ni idea. He visto que si lo metes entre comillas ( "*" ) sí que lo reconoce... pero no sé que más decirte lo siento mucho.