Foros del Web » Programación para mayores de 30 ;) » Java »

parámetro asterico en programa consola

Estas en el tema de parámetro asterico en programa consola en el foro de Java en Foros del Web. Tengo un problema con este código: public class prog0605 { public static void main(String[] args) { int n1=Integer.parseInt(args[0]); int n2=Integer.parseInt(args[1]); char ope=args[2].charAt(0); float rpta; switch(ope) ...
  #1 (permalink)  
Antiguo 27/09/2012, 23:40
 
Fecha de Ingreso: septiembre-2005
Mensajes: 74
Antigüedad: 18 años, 7 meses
Puntos: 0
parámetro asterico en programa consola

Tengo un problema con este código:

public class prog0605
{
public static void main(String[] args)
{
int n1=Integer.parseInt(args[0]);
int n2=Integer.parseInt(args[1]);
char ope=args[2].charAt(0);
float rpta;

switch(ope)
{
case '+':
rpta=n1+n2;
break;
case '-':
rpta=n1-n2;
break;
case '*':
rpta=n1*n2;
break;
case '/':
rpta=(float) n1/n2;
break;
default:
rpta=(float)0.0;

}
System.out.println(n1+" "+ope+" "+n2+"="+rpta);


}
}

cuando le paso el parámetro * me devuelve la primera letra de la lista de archivos de la carpeta actual..

ejecuto en línea de comandos: < java prog0605 1 2 * > y me devuelve: <1 M 2=0.0> .... alguien sabe por qué?.. gracias por la ayuda.
  #2 (permalink)  
Antiguo 28/09/2012, 01:21
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: parámetro asterico en programa consola

La consola analiza el comando antes de ejecutarlo y convierte los * en los ficheros del directorio donde ejecutas el comando.

En linux para evitar que el interprete de comandos expanda el *, se suele meter entre comillas

En linux funcionaría bien con java prog0605 1 2 "*"

Con una búsqueda rápida en google no he encontrado la forma de hacerlo en ms-dos/windows (esto es lo mas completo que he encontrado http://www.robvanderwoude.com/escapechars.php ). Con las comillas no funciona y con los caracteres de "escape" que indica ms-dos tampoco \* ^* %* . Prueba tú a buscar en google formas de evitar que los "wildcards" (el * y el ?) se expandan en ms-dos, como te digo, no me he "matado" a buscar.

Se bueno.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: consola, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:08.