Como manejo esta excepcion aqui ,,, para controlar que el usuario no introduzca una letra
saludos!!!
import java.io.*;
public class Suma {
public static void main(String[] args) throws Exception{
BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
int n=0,suma=0,k=1;
try{
System.out.println("introduce numero, y -1 para Finalizar: ");
n=Integer.parseInt(leer.readLine());
}
catch(Exception e){
System.out.println("introduce un valor numerico por favor ");
}
while(n != -1 ) {
suma+=n;
System.out.println("introduce valor, y -1 para Finalizar: ");
try{
n=Integer.parseInt(leer.readLine());
}
catch(Exception e){
System.out.println("introduce un valor numerico por favor");
}
}k++;
System.out.println("La suma es: "+suma);
}
}
introduce numero, y -1 para Finalizar
5
introduce valor, y -1 para Finalizar
a
introduce un valor numerico por favor
introduce valor, y -1 para Finalizar
-1
La suma es: 10
Es una idea descabellada hay mas simples pero es la primera que se me ha pasado por la cabeza xD no me apetece pensar mucho que la necesito para los examenes XD, pero esta forma es la chapuza ya que le falta dar toques pero hay tienes un ejemplo de saber si es una letra o no
int n=0,suma=0,k=1;
String[] letras = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","ñ","o","p","q","r","s","t","u","v","w","x","y","z"};
System.out.println("introduce numero, y -1 para Finalizar: ");
n=Integer.parseInt(leer.readLine());
for(int a=0; a<=letras.lenght; a++)
{
if(n == letras[a]){
System.out.println("Inserte un número no una letra");
System.exit(0);
}
}
Te aconsejo no usar este metodo hay que darle muchos toques pero es un ejemplo es que no tengo mucho tiempo sino te haría uno en condiciones
ummm se ve bien Afsoon ,,, :) gracias por la ayuda
No estaras buscando algo asi sin usar try y catch
import java.util.Scanner;
public class Suma {
public static void main(String[] args) {
int n=0,suma=0;
Scanner scanner=new Scanner(System.in);
do{
suma+=n;
System.out.println("introduce valor, y -1 para Finalizar: ");
if(scanner.hasNextInt())n=scanner.nextInt();
else{
if(scanner.hasNext())scanner.next();
System.out.println("introduce un valor numerico por favor\n");
}
}while(n!=-1);
System.out.println("La suma es: "+suma);
}
}
Hasta con ExpReg se puede,
public static void sValidateNumbers(String sString){
Pattern sPattern = Pattern.compile("^[0-9]*$");
Matcher sMatcher = sPattern.matcher(sString);
if ( !sMatcher.find() ){ System.out.println("NO, son numeros.\n"); }
else{ System.out.println("SI, son numeros.\n"); }
}
Gracias por la ayuda lo intentare
SaluDDoS !!!
Hay por lo menos 10 maneras diferentes de hacerlo.
do {
System.out.println("introduce numero, y -1 para Finalizar: ");
num = leer.readLine();
}while(!isNumeric(num));
n=Integer.parseInt(num);
Métedo que usa el código de arriba.
private static boolean isNumeric(String string) {
try {
Integer.parseInt(string);
return true;
}
catch(Exception e) {
return false;
}
}
Usando banderas
boolean status = false;
do {
try{
System.out.println("introduce numero, y -1 para Finalizar: ");
n=Integer.parseInt(leer.readLine());
status=true;
}
catch(Exception e) {
status=false;
}
}while(status==false);
Usando otro método
do {
System.out.println("introduce numero, y -1 para Finalizar: ");
str = leer.readLine();
}while(isLetter(str));
n=Integer.parseInt(str);
Método del código de arriba
private static boolean isLetter(String string) {
if(string.matches("[a-zA-Z]"))
return true;
else
return false;
}
Sin usar método ni try catch
String str="";
do {
System.out.println("introduce numero, y -1 para Finalizar: ");
str = leer.readLine();
}while(str.matches("[a-zA-Z]"));
Un saludo.
gracias men !! saluDDoS gracias por la ayuda