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

[SOLUCIONADO] [Duda] Arreglos en java ultimo elementos ingresado

Estas en el tema de [Duda] Arreglos en java ultimo elementos ingresado en el foro de Java en Foros del Web. Hola amigos necesito ayuda, bien nos han dejado un programa que simule una contestadora con arrelos y en una parte nos piden un metodo para ...
  #1 (permalink)  
Antiguo 05/11/2013, 11:41
Avatar de ninga  
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta [Duda] Arreglos en java ultimo elementos ingresado

Hola amigos necesito ayuda, bien nos han dejado un programa que simule una contestadora con arrelos y en una parte nos piden un metodo para obtener el ultimo mensaje que a llegado bien lo he echo y funciona bien si se llena el arreglo, pero si creo un arreglo de 5 mensajes y solo llegan dos mensajes osea solo lleno dos me tiene que devolver el ultimo mensaje que a llegado, espero que me entiendan y me puedan ayudar se los agradecre mucho, este es el codigo del metodo:

Código Java:
Ver original
  1. public String escucharMensaje() {
  2.         // Mejorar
  3.         Mensaje eq = null;
  4.         int i;
  5.         String r;
  6.         r = "No hay mensaje";
  7.         if (!estaVacia()) {
  8.             r = "";
  9.             eq = mensajes[0];
  10.             for (i = 0; i < nm; i++) {
  11.                 eq = mensajes[mensajes.length - 1];
  12.             }
  13.             r += eq.obtenerMensaje() + "\n";
  14.         }
  15.         return r;
  16.     }
  #2 (permalink)  
Antiguo 05/11/2013, 12:27
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: [Duda] Arreglos en java ultimo elementos ingresado

for (int i = 0; i < nm && mensajes[i]!=null ; i++)
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 05/11/2013, 13:02
Avatar de ninga  
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: [Duda] Arreglos en java ultimo elementos ingresado

Cita:
Iniciado por Xerelo Ver Mensaje
for (int i = 0; i < nm && mensajes[i]!=null ; i++)
Gracias Xerelo pero no ha funcionado me sale un nullexeption
  #4 (permalink)  
Antiguo 05/11/2013, 13:30
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: [Duda] Arreglos en java ultimo elementos ingresado

Algo estás haciendo mal.

http://ideone.com/ZTtv8W

El stdout es el resultado.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #5 (permalink)  
Antiguo 05/11/2013, 13:43
Avatar de ninga  
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: [Duda] Arreglos en java ultimo elementos ingresado

Cita:
Iniciado por Xerelo Ver Mensaje
Algo estás haciendo mal.

[url]http://ideone.com/ZTtv8W[/url]

El stdout es el resultado.
No lo se pongo mi codigo de mi clase:

Código Java:
Ver original
  1. import javax.swing.JOptionPane;
  2.  
  3. /**
  4.  * Contestadora.java Clase que simula una contestadora de telefono.
  5.  *
  6.  * @version Octubre 2013
  7.  * @see Mensaje
  8.  */
  9. public class Contestadora {
  10.  
  11.     private int nm;
  12.     private Mensaje mensajes[];
  13.  
  14.     /**
  15.      * Constructor por omicion con capacidad de 10 mensajes.
  16.      */
  17.     public Contestadora() {
  18.         mensajes = new Mensaje[10];
  19.         nm = 0;
  20.     }
  21.  
  22.     /**
  23.      * Contructor que recibe la cantidad maxima de mensajes permitidos
  24.      *
  25.      * @param n Recibe un entero, el numero maximo de mensajes.
  26.      */
  27.     public Contestadora(int n) {
  28.         mensajes = new Mensaje[(n < 0) ? 10 : n];
  29.         nm = 0;
  30.     }
  31.  
  32.     /**
  33.      * Metodo para obtener el numero de mensajes que a llegado a la
  34.      * contestadora.
  35.      *
  36.      * @return int - Regresa el numero de mensajes que a llegado.
  37.      */
  38.     public int getNumeroMensajes() {
  39.         return nm;
  40.     }
  41.  
  42.     /**
  43.      * Metodo que permite conocer la capacidad maxima de mensajes de la
  44.      * contestadora.
  45.      *
  46.      * @return int - Regresa la capacidad maxima de la contestadora.
  47.      */
  48.     public int getCapacidad() {
  49.         return mensajes.length;
  50.     }
  51.  
  52.     /**
  53.      * Metodo que permite eliminar todos los mensajes de la contestadora.
  54.      */
  55.     public void limpiar() {
  56.         nm = 0;
  57.     }
  58.  
  59.     /**
  60.      * Metodo para agregar un nuevo mensaje a la contestadora.
  61.      *
  62.      * @param a Recibe un objero de la clase mensaje(mensaje a dejar).
  63.      */
  64.     public void agregarMensaje(Mensaje a) {
  65.         if (!estaLlena()) {
  66.             mensajes[nm++] = a;
  67.         } else {
  68.             System.out.println("No hay mas espacio en la contestadora.");
  69.         }
  70.     }
  71.  
  72.     /**
  73.      * Metodo que determina los mensajes no escuchados.
  74.      *
  75.      * @return int - Regresa el numero de mensajes no escuchados.
  76.      */
  77.     public int msjNoEscuchados() {
  78.         int x = 0;
  79.         if (!mensajes[nm].escuchar()) {
  80.             for (int i = 0; i < nm; i++) {
  81.                 x = nm;
  82.             }
  83.         }
  84.         return x;
  85.     }
  86.  
  87.     /**
  88.      * Metodo para determinar si la contestadora esta llena.
  89.      *
  90.      * @return boolean - Regresa true o false.
  91.      */
  92.     public boolean estaLlena() {
  93.         return nm == mensajes.length;
  94.     }
  95.  
  96.     /**
  97.      * Metodo que determina si la contestadora esta vacia
  98.      *
  99.      * @return boolean - Regresa true si esta vacia, false en otro caso
  100.      */
  101.     public boolean estaVacia() {
  102.         return nm == 0;
  103.     }
  104.  
  105.     /**
  106.      * Metodo que imprime en pantalla todos los mensajes de la contestadora que
  107.      * no han sido escuchados.
  108.      *
  109.      * @return String - Regresa todos los mensajes de la contestadora sin
  110.      * ecuchar.
  111.      */
  112.     //Solo debe imprimir los no escuchados, este imprime todos los mensajes.
  113.     public String nuevosMensajes() {
  114.         int i;
  115.         String r = "No hay mensajes en la contestadora";
  116.         if (!estaVacia()) {
  117.             r = "";
  118.             for (i = 0; i < nm; i++) {
  119.                 r += mensajes[i].obtenerMensaje() + "\n";
  120.             }
  121.         }
  122.         return r;
  123.     }
  124.  
  125.     /**
  126.      * Metodo que imprime en pantall el mensaje especificado.
  127.      *
  128.      * @param i Recibe un entero que es el numero de mensaje.
  129.      * @return String - Regresa el mensaje pedido.
  130.      */
  131.     public String escucharMensajes(int i) {
  132.         String r = "ERROR: No hay mensajes en la contestadora";
  133.         Mensaje ms = null;
  134.         if (!estaVacia() | i >= nm && mensajes.length > i && mensajes[i] != null) {
  135.             r = "";
  136.             ms = mensajes[i];
  137.             r += ms.obtenerMensaje() + "\n";
  138.         } else {
  139.             r = "ERROR";
  140.             return r;
  141.         }
  142.         return r;
  143.     }
  144.  
  145.     /**
  146.      * Metodo que imprime en pantalla el ultimo mensaje sin ecuchar.
  147.      *
  148.      * @return String - Regresa el ultimo mensaje sin escuchar.
  149.      */
  150.     public String escucharMensaje() {
  151.         // Mejorar
  152.         Mensaje eq = null;
  153.         int i;
  154.         String r;
  155.         r = "No hay mensaje";
  156.         if (!estaVacia()) {
  157.             r = "";
  158.             eq = mensajes[0];
  159.             for (i = 0; i < nm && mensajes[i]!=null; i++) {
  160.                 eq = mensajes[mensajes.length - 1];
  161.             }
  162.             r += eq.obtenerMensaje() + "\n";
  163.         }
  164.         return r;
  165.     }
  166. }
  #6 (permalink)  
Antiguo 05/11/2013, 13:51
Avatar de ninga  
Fecha de Ingreso: diciembre-2011
Ubicación: Mexico
Mensajes: 19
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: [Duda] Arreglos en java ultimo elementos ingresado

Cita:
Iniciado por Xerelo Ver Mensaje
Algo estás haciendo mal.

[url]http://ideone.com/ZTtv8W[/url]

El stdout es el resultado.
Gracias amigo Xerelo ya lo arregle, lo que daba error era que tenia

Código Java:
Ver original
  1. eq = mensajes[mensajes.length - 1];

Y era
Código Java:
Ver original
  1. eq = mensajes[i];

Etiquetas: Ninguno
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 21:19.