Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/06/2013, 18:20
Avatar de blittcer
blittcer
 
Fecha de Ingreso: noviembre-2007
Mensajes: 125
Antigüedad: 16 años, 5 meses
Puntos: 1
Respuesta: Comparar una cadena para evitar excepcion

Se me ocurre que con un:

if(numCuenta.equals(cuenta)) { } else { System.out.print("La cuenta no existe \n");}

Pero algo no me funciona :(

Código Java:
Ver original
  1. public class Objetivo1B {
  2.     private static HashMap<String, Float> saldoCuenta = new HashMap<String, Float>();
  3.     private static String numCuenta;
  4.     public static void main(String[] args) {
  5.         cargarCuentas();
  6.         mostrarCuentas("SALDOS INICIALES\n");
  7.         procesaFacturas();
  8.         mostrarCuentas("\nSALDOS FINALES\n");
  9.         System.out.println("\nfin objetivo1");
  10.     }
  11.  
  12.     private static void mostrarCuentas(String cabecera) {
  13.         System.out.println(cabecera);
  14.         Set<String> set = saldoCuenta.keySet();
  15.         Iterator<String> iter = set.iterator();
  16.         while (iter.hasNext()) {
  17.             Object cuenta = iter.next();
  18.             Object saldo = saldoCuenta.get(cuenta);
  19.             System.out.print(cuenta + " Saldo: " + saldo + " €\n");
  20.         }
  21.     }
  22.    
  23.     private static void procesaFacturas() {
  24.         try {
  25.             System.out.println("\nMOVIMIENTOS A LAS CUENTAS\n");
  26.             String linea;
  27.             BufferedReader fichero = new BufferedReader(new FileReader(
  28.                     "datos/Facturas2.txt"), 1024);
  29.             while ((linea = fichero.readLine()) != null) {
  30.                 String cuenta = (linea.split("@")[0]);
  31.                 String tipo = (linea.split("@")[1]);
  32.                 Float importe = Float.parseFloat(linea.split("@")[2]);
  33.                 Float saldoActual = saldoCuenta.get(cuenta);
  34.                 Float nuevoSaldo;
  35.         if(numCuenta.equals(cuenta)) {
  36.             if(tipo.compareTo("A") == 0 || tipo.compareTo("C") == 0) {
  37.                 if(tipo.compareTo("A") == 0) { // abono
  38.                     nuevoSaldo = saldoActual + importe;
  39.                     saldoCuenta.put(cuenta, nuevoSaldo);
  40.                     System.out.print(cuenta + " = " + tipo + ", " + importe + "\n");
  41.                 }  
  42.                 if(tipo.compareTo("C") == 0) {  // cargo
  43.                     nuevoSaldo = saldoActual - importe;
  44.                     saldoCuenta.put(cuenta, nuevoSaldo);
  45.                     System.out.print(cuenta + " = " + tipo + ", " + importe + "\n");
  46.                 }  
  47.             } else {
  48.                  System.out.print(cuenta + " = tipo de operación invalida, " + importe + "\n");}
  49.         }else {
  50.              System.out.print("Cuenta no existe \n");}
  51.         }
  52.         } catch (NumberFormatException e) {
  53.             System.out.println("Formato del número invalido");
  54.         } catch (ArrayIndexOutOfBoundsException e) {
  55.             System.out.println("Valores cargados incorrectos");
  56.         } catch (IOException e) {
  57.             System.out.println("Fichero inexistente");
  58.         }
  59.     }
  60.  
  61.     private static void cargarCuentas() {
  62.         /*
  63.          * Método que lee el fichero de cuentas y lo carga en un HashMap
  64.          */
  65.         try {
  66.             String linea;
  67.             BufferedReader fichero = new BufferedReader(new FileReader(
  68.                     "datos/Cuentas2.txt"), 1024);
  69.             while ((linea = fichero.readLine()) != null) {
  70.                 numCuenta = (linea.split("#")[0]);
  71.                 Float saldo = Float.parseFloat(linea.split("#")[1]);
  72.                 saldoCuenta.put(numCuenta, saldo);// se carga HashMap con saldos
  73.                                                     // de cuentas
  74.             }
  75.             fichero.close();
  76.         } catch (NullPointerException e) {
  77.             System.out.println("Punto nulo NO FUNCIONA AÚN ni la captura");
  78.         } catch (NumberFormatException e) {
  79.             System.out.println("Formato del número invalido");
  80.         } catch (ArrayIndexOutOfBoundsException e) {
  81.             System.out.println("Valores cargados incorrectos");
  82.         } catch (FileNotFoundException e) {
  83.             System.out.println("Fichero inexistente");
  84.         } catch (IllegalArgumentException e) {
  85.             System.out.println("Capturada IllegalArgumentException");
  86.         } catch (IOException e) {
  87.             System.out.println("Capturada IOException");
  88.         }
  89.     }
  90. }
__________________
Si vas al Gimnasio y quieres conseguir buenos resultados: Fitness, Dietas y Entrenamientos