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

Combinación de caracteres.

Estas en el tema de Combinación de caracteres. en el foro de Java en Foros del Web. Hola, a ver si me podeis ayudar.... lo que quiero hacer es un programa en java que me genere todas las posibles combinaciones de caracteres ...
  #1 (permalink)  
Antiguo 24/08/2015, 16:20
 
Fecha de Ingreso: agosto-2015
Mensajes: 2
Antigüedad: 8 años, 8 meses
Puntos: 0
Combinación de caracteres.

Hola, a ver si me podeis ayudar.... lo que quiero hacer es un programa en java que me genere todas las posibles combinaciones de caracteres , y las muestre en pantalla. Para ello el programa tiene que pedirme que introduzca el numero de caracteres y los caracteres que voy a combinar.
Por ejemlo:
2
ab
Salida:
ba

Gracias.
  #2 (permalink)  
Antiguo 26/08/2015, 03:08
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Combinación de caracteres.

Supongo que esto es un ejercicio de clase, y si quieres aprender de nada te sirve que te ponga el código.

Yo lo he hecho con un método recursivo.

Tienes un listado y por cada elemento llamas al método pasándole el elemento y un listado con todos los elementos menos ese, y así sucesivamente.
__________________
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 27/08/2015, 05:45
Avatar de Tipdar  
Fecha de Ingreso: octubre-2005
Ubicación: Aquí y allá.
Mensajes: 323
Antigüedad: 18 años, 6 meses
Puntos: 7
Respuesta: Combinación de caracteres.

import java.util.LinkedList;
import java.util.List;

public class GeneradorDePalabras {

private static void generador(String origen, String tempo,
List<String> salida) {
String tmp = new String(tempo), org = "";
if (origen.length() == 0) {
salida.add(tmp);
return;
}
for (int i = 0; i < origen.length(); i++) {
tmp = tempo.concat(origen.substring(i, i + 1));
org = origen.substring(0, i);
if (i < (origen.length() + 1))
org = org.concat(origen.substring(i + 1,
origen.length()));
generador(org, tmp, salida);
}
}

public static void main(String[] args) {
List<String> salida = new LinkedList<>();
generador("ASM", new String(), salida);
for (int i = 0; i < salida.size(); i++)
System.out.println((String) salida.get(i));
System.out.println(salida.size() + " palabras");
}
}
__________________
El último TipdaR

Etiquetas: combinación, programa
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 20:02.