Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Java (básico) > Problemas con String y Do While
-Foros de debate

Java (básico)
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Problemas con String y Do While
Enviado por TrancEdition el día 24 de septiembre de 2008

Buenas gente, mi nombre es Nicolás, este es mi primer post y tengo la siguiente duda:

Mi programa es el siguiente: Básicamente es leer números de un archivo de texto, guardarlos en un array, y que después busque qué valores se encuentran en 0, que pregunte si se quiere reemplazar el valor 0 por cualquier otro número para después grabar en el archivo los cambios realizados.

Acá va el programa:

---------------------------------------------------------------------------------

import static java.lang.System.out;
import java.util.Scanner;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;

public class Principal {

public static void main(String args[]) throws IOException{

Scanner DiscoScan = new Scanner(new File("C:\\Prueba.txt"));
Scanner TecladoScan = new Scanner(System.in);

int Lugares[] = new int[10];
int Cuenta;
String Respuesta;

for (Cuenta = 0; Cuenta < 10; Cuenta++){

Lugares[Cuenta] = DiscoScan.nextInt(); // Asigna los valores del archivo de texto al array
}

out.println("Cuenta\tNúmero");

for (Cuenta = 0; Cuenta < 10; Cuenta++){

out.print(Cuenta);
out.print("\t\t");
out.println(Lugares[Cuenta]); // Muestra la posición y los valores del array
}

// Buscador

Cuenta = 0;
while (Cuenta < 10 && Lugares[Cuenta] != 0) {
Cuenta++;
}

if (Cuenta == 10){

out.println();
out.println("Ninguna Cuenta con valor 0");

} else{

out.println();
out.println("La Cuenta número " +Cuenta+ " está con valor 0");

do { //Do While que evita que se ingresen valores que no sean "si" o "no"

out.print("Le ponemos valor?(si/no): ");

Respuesta = TecladoScan.next();

if (!Respuesta.equalsIgnoreCase("si") && !Respuesta.equalsIgnoreCase("no")) { //En Caso de Ingresar otro valor, muestra "Respuesta Incorrecta"

out.println("Respuesta incorrecta");
}

}

while(!Respuesta.equalsIgnoreCase("si") && !Respuesta.equalsIgnoreCase("no")); //Fin de Primer Do While

if (Respuesta.equalsIgnoreCase("si")) {

do { //Segundo Do While que evita que se ingresen valores menores a 1 y mayores a 10 (Acá empieza mi problema)

out.print("Ingrese Valor para la Cuenta " +Cuenta+ "(1-10): "); //Pregunta que valor se quiere asignar

Lugares[Cuenta] = TecladoScan.nextInt();

if (Lugares[Cuenta] < 1 || Lugares[Cuenta] > 10){

out.println("Valor Incorrecto");

}

}

while(Lugares[Cuenta] < 1 || Lugares[Cuenta] > 10); //Fin de segundo Do While y comienzo de mi duda

PrintStream PonerInfo = new PrintStream("C:\\Prueba.txt");

for (Cuenta = 0; Cuenta < 10; Cuenta++){ //Guarda los valores ingresados al archivo de texto

PonerInfo.print(Lugares[Cuenta]);
PonerInfo.print(" ");
}
}
}
}
}
------------------------------------------------------------------------------

Mi duda es la siguiente:

En el segundo "Do While" puedo evitar que el usuario ingrese valores menores a 1 y mayores a 10 y, en caso de ingresarlos, aparece un mensaje que dice "Valor Incorrecto". El problema es que cuando se ingresan letras o caracteres que no sean enteros (lógicamente porque el array es de tipo Int) tira un InputMismatchException.

Lo que quiero hacer (al igual que hice con los valores menores a 1 y mayores a 10) es que al ingresar un String, también me muestre un "Valor Incorrecto". Osea, que identifique que el valor ingresado es de tipo String y que haga un especie de "if (Valor Ingresado == String) { print "Valor Incorrecto")".

Hay alguna forma de realizar lo que quiero hacer??

Se agradecen las respuestas y el tiempo de lectura.

 

Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network