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

Método que recibe un array y devuelve un string

Estas en el tema de Método que recibe un array y devuelve un string en el foro de Java en Foros del Web. Hola, Me gustaría saber cómo implementar un método al que se le pasa un array de enteros y devuelve un string con los mismos datos ...
  #1 (permalink)  
Antiguo 19/09/2011, 12:19
 
Fecha de Ingreso: enero-2006
Mensajes: 36
Antigüedad: 18 años, 3 meses
Puntos: 0
Método que recibe un array y devuelve un string

Hola,

Me gustaría saber cómo implementar un método al que se le pasa un array de enteros y devuelve un string con los mismos datos separado por comas. Me piden utilizar listas y declarar el método de la siguiente forma:

Public static String listToString (List<Integer> p)

Estoy aprendiendo y no domino nada de listas, la información que busco no me lo deja muy claro. También me gustaría saber cómo llamar a ese método desde el main.

Me gustaría sacarlo yo mismo pero llevo un buen rato y parece que esté perdiendo el tiempo. Me podéis orientar o mostrar un ejemplo?

Gracias, streak

Última edición por StreaK; 19/09/2011 a las 12:32
  #2 (permalink)  
Antiguo 20/09/2011, 01:10
 
Fecha de Ingreso: septiembre-2007
Mensajes: 268
Antigüedad: 16 años, 7 meses
Puntos: 8
Respuesta: Método que recibe un array y devuelve un string

La clase List no es un array es un Collector. un Array se define Integer[] arrayEnteros = new Integer[]; entre corchetes el numero de elementos del array.

en el main se crea el array.

Integer arrayEnteros = new Integer[7];
arrayEnteros[0] = new Integer(1);
arrayEnteros[1] = new Integer(2);
arrayEnteros[2] = new Integer(3);

System.out.println("mostrar array "+arrayToString (arrayEnteros));

fin del main.

public static String arrayToString (Integer[] p)
{
String resultado = "";
int i=0;
if (p!= null && p.length > 0)
{
while ("".equals(resultado) && i<p.length)
{
Integer aux = p[i];
if (aux != null)
{
resultado = ""+aux;
}
i++;
}
}

while (i<p.length)
{
Integer aux = p[i];
if (aux != null)
{
resultado += ";"+aux;
}
i++;
}
return resultado;
}

Si lo quieres hacer con un colector
en el main se crea el array.

List<Integer> arrayEnteros = new ArrayList();
arrayEnteros.add(new Integer(1));
arrayEnteros.add(new Integer(2));
arrayEnteros.add(new Integer(3));

System.out.println("mostrar array "+ListToString (arrayEnteros));

fin del main.

public static String arrayToString (List<Integer> p)
{
String resultado = "";
int i=0;
if (p!= null && p.size()> 0)
{
while ("".equals(resultado) && i<p.size())
{
Integer aux = p.get(i);
if (aux != null)// esto no haria falta porque todos los elementos del list deberian tener un objeto. Tambien se puede usar un Iterador para recorrer el collector.
{
resultado = ""+aux;
}
i++;
}
}

while (i<p.size())
{
Integer aux = p.get(i);
if (aux != null)
{
resultado = ""+aux;
}
i++;
}
return resultado;
}
  #3 (permalink)  
Antiguo 20/09/2011, 01:27
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Método que recibe un array y devuelve un string

Ejem Erickvk, ya sé que yo tb. lo he hecho alguna vez pero... no deberíamos hacerles los deberes a los que empiezan curso este año :D

Más que nada porque no aprenden. Si tal darle pistas y luego que pongan el código que van creando si no les funciona, o si les funciona, y se lo optimizamos.

^^
  #4 (permalink)  
Antiguo 20/09/2011, 11:11
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Método que recibe un array y devuelve un string

Yo utilizaría un iterador para recorrer la lista (un objeto de la clase Iterator) o el bucle for (each) para recorrerlo.

Código Java:
Ver original
  1. public static String arrayToString  (List<Integer> p){
  2.  
  3.   Iterator iterador = p.iterator();
  4.   Integer entero;
  5.  while(iterador.hasNext())
  6.  {
  7.   entero = iterador.next();
  8.   //haces lo que quieras con ese valor
  9.  }
  10. }

ó

Código Java:
Ver original
  1. public static String arrayToString  (List<Integer> p){
  2.  
  3. for(Integer entero : p){
  4.   //haces lo que quieras con el valor de entero
  5.  }
  6. }

El último método también puede usarse con arrays normales.
  #5 (permalink)  
Antiguo 21/09/2011, 02:59
 
Fecha de Ingreso: enero-2006
Mensajes: 36
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Método que recibe un array y devuelve un string

Joder qué currada, muchas gracias. Me ha costado entenderlo todo :) Sí, estoy en lo básico y encima voy a contrareloj.

Por cierto profe (Fuzzylog), no busco que me hagan los deberes busco entenderlo para luego aplicarlo a lo que hago.

Gracias!
  #6 (permalink)  
Antiguo 21/09/2011, 05:09
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Método que recibe un array y devuelve un string

Venga, ya que no aporté nada en el último mensaje, y como ya le dije a Alex en el voto positivo que me decantaba por el uso de iterator, ahí va otro aporte sobre como combinar el bucle for con el Iterator (para hacer básicamente lo miso que Alex dijo).

public static String arrayToString (List<Integer> p){
for (Iterator it = p.iterator(); it.hasNext();) {
Integer entero = it .next();
// haces lo que quieras con ese valor
}
}

Yo soy más partidario de usar Collections o ArrayLists, y esta es la forma habitual que uso para los bucles con el Iterator. Lo que pasa es que las collections al definirlas no se incluye la clase de contenido que hay, así que se consideran Objects genéricos, y se deben reconvertir a la clase correcta al extraerlos, por tanto si sabes que son enteros, en ese caso la forma de castear sería:
Integer entero = (Integer) it .next();
  #7 (permalink)  
Antiguo 21/09/2011, 05:59
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Método que recibe un array y devuelve un string

En las nuevas versiones de Java (hace varias ya) puedes definir que tipo de dato se guarda dentro de la colección y que tipo de dato vas a usar para el Iterador como he hecho en mi ejemplo.

La forma con el bucle for es buena, pero para mi gusto es redundante si puedes hacerlo con el bucle for each (vamos, que es mi opinión).

Saludos.
  #8 (permalink)  
Antiguo 21/09/2011, 06:29
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Método que recibe un array y devuelve un string

ok alex, lo que me pasa a mi es lo que tiene trabajar con antiguallas como la 1.4 ^^

Etiquetas: devuelve, string
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 07:24.