Uso de Scanner - Problema de lectura de una linea

Saludos Amigos JavaMexico:

Queria hacerles una consulta como puedo leer en una sola linea dos valores (1 entero y 1 cadena), y luego utilizarlos de forma indepediente???

este es mi codigo:

_______________________________________________________________

import java.util.Scanner;

public class ConversionesMonetarias
{

        public static double euroAdolar(double euro, double factorCambioaDolar)
        {
                double dolar=0;
               
                dolar=euro*factorCambioaDolar;
                               
                return(dolar);
        }
       
        public static double dolarAeuro(double dolar, double factorCambioaEuro)
        {
                double euro=0;
               
                euro=dolar/factorCambioaEuro;
                               
                return(euro);
        }
       
       
        public static void main(String [] args)
        {
                Scanner escritura=new Scanner (System.in);
                System.out.println ("Ingrese el monto a convertir... (monto moneda)");
                String monto=escritura.next ();
               
                double dinero=0;
                String moneda="";
                double dolar,euro;
                double factorEuro_Cambio_dolar=1.2573;
                escritura.close ();
                Scanner escritura2=new Scanner (monto);
               
                // primera palabra: nombre del comando
                if (escritura2.hasNext())
                        dinero = Double.parseDouble (escritura2.next());

                // segunda palabra: eventual parametro
                if (escritura2.hasNext())
                        moneda = escritura2.next();
               
                System.out.println ("lo que escribio por teclado.... ("+dinero+") "+moneda);
               
                if(moneda.equals ("usd") || moneda.equals ("euros"))
                {
                        if(moneda.equals ("usd"))
                        {
                                dolar=euroAdolar (dinero, factorEuro_Cambio_dolar);
                                System.out.println (dinero+ " = "+dolar+" $");
                        }
                       
                        if(moneda.equals ("euros"))
                        {
                                euro=dolarAeuro (dinero, factorEuro_Cambio_dolar);
                                System.out.println (dinero+ " = "+euro+" euros");
                        }
                }
                else
                {
                        System.out.println ("error,,,,,,");
                }

        }

}

__________
Les agradeceria me ayudaran con este problema. Gracias....

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

intenta con nextDouble() y

intenta con nextDouble() y nos avisas si funcionó :)

uso de nextdouble

Saludos OscarRyz,

Use "nextDouble", y me dio otros errores. Asi que cambie un poco el codigo y me funciona puede leer (double y
string). Ahora el problema esta en las excepciones. Algunas ocasiones funcionan otras veces. te pediria por favor lo revises y si puedes indicarme donde estan los problemas (declaracion, ubicacion en el bloque de codigo, etc)

CODIGO:
--------------------------
package com.mnemo.formacion.ejercicio4_5_Conversiones_Monetarias;

import java.util.Scanner;

public class ConversionesMonetarias
{
public static double euroAdolar(double euro, double factorCambioaDolar)
{
return (euro * factorCambioaDolar);
}

public static double dolarAeuro(double dolar, double factorCambioaEuro)
{
return (dolar / factorCambioaEuro);
}

public static void main(String [] args)
{
double dinero = 0, dolar, euro, factorEuro_Cambio_dolar = 1.2573;

String moneda = "", monto = "", opcion = "";

Scanner escritura = new Scanner (System.in);

do
{
System.out.println ("Ingrese el monto a convertir... (monto moneda) solo minusculas");
monto = escritura.nextLine ();

Scanner escritura2 = new Scanner (monto);

if (escritura2.hasNext ())
{
try
{
dinero = Double.parseDouble (escritura2.next ());
}
catch (NumberFormatException e)
{
e.printStackTrace ();
}

}
if (escritura2.hasNext ())
{
moneda = escritura2.next ();
}

if (moneda.equals ("usd") || moneda.equals ("euros"))
{
if (moneda.equals ("euros"))
{
dolar = euroAdolar (dinero, factorEuro_Cambio_dolar);
System.out.println (dinero + " " + moneda + " = " + dolar+ " dolar");
}

if (moneda.equals ("usd"))
{
euro = dolarAeuro (dinero, factorEuro_Cambio_dolar);
System.out.println (dinero + " " + moneda + " = " + euro+ " euros ");
}
}
else
{
try
{
throw new ExcepcionMoneda ("La moneda no es usd o euros ");
}
catch (ExcepcionMoneda e)
{
e.printStackTrace ();
}
}

Scanner eleccion = new Scanner (System.in);
System.out.println ("¿desea continuar si/no?");
opcion = eleccion.next ();
System.out.println ("opcion que eligio ... " + opcion);

} while (!opcion.equals ("no"));

System.out.println ("Gracias....");
}

}

_______________

Gracias por el apoyo de antemano.

Pon tu código entre <code> y

Pon tu código entre <code> y </code> y pega también los otros errores que te salen, de otra forma no sé a que te refieres y ya que estás en eso, pon cada llave que abre en la misma linea ( no en una linea nueva ) y en ponle llaves a los if.

asi
if ( moneda blabalbal ) {
    x
}

Y no así:

if ( moneda balbalbal )
{
    x
}

Y mucho menos:

if ( moneda blabalabal )
    x

Quizá yo no pueda ayudarte a resolverlo todo, pero si lo escribes así ( y pones los mensajes de error ) es mucho más fácil que alguien más te ayude ( a veces tu mismo al escribirlos dirás ..ahhhh claaaaro me falta ponerle un punto y coma )

Saludos

Voy a cerrar este post porque

Voy a cerrar este post porque veo que lo pusiste con más claridad en otro.... por cierto ya te contesté allá