Título: Mezclar 2 datos tipo String.
Publicado por: Coke951 en 18 Abril 2015, 07:25 am
Que tal, me estaba preguntando como hacer una mezcla de un string que contiene letras y otro string que contiene numeros de forma aleatoria. Lo hice de esta forma, pero se me hace muy complicada y no funciona del todo bien. Se que existen muchas formas de hacer esto, me gustaria saber si alguien ya lo ha hecho antes y encontro alguna forma simple o minimo que funcione del todo. import java.util.Scanner; import java.util.Random;
class Mezclador{ //variables instancia private String letras; private String numeros; public Mezclador(String letras, String numeros){ establecerLetrasYNumeros(letras, numeros); } public void establecerLetrasYNumeros(String let, String num){ letras = let; numeros = num; } public String obtenerMix(){ String mixed = ""; StringBuffer mix = new StringBuffer(letras); Random random = new Random(); int numRandom = random.nextInt(numeros.length()); int varNum = 0; int varLet = 0; for(int x = 0; x < 2 ; x++){ varNum = random.nextInt(numeros.length()); varLet = random.nextInt(letras.length()); mixed += mix.insert(varLet, numeros.charAt(varNum)); } return mixed; } } Prueba de Escritorio: (http://img1.imagilive.com/0415/cap887.png) Gracias de antemano.
Título: Re: Mezclar 2 datos tipo String.
Publicado por: Usuario Invitado en 18 Abril 2015, 15:29 pm
Crea un List<String> y agrégale 2 arrays: las letras ingresadas y los números ingresados. Ingresa los números y letras separados por espacios y aplica el método split(" ") para obtener un array de las letras. Lo mismo para los números. Luego, convierte esos arrays a List con Arrays.asList y, finalmente aplica el método shuffle para mezclarlos. Importante, pasar como segundo parámetro una semilla, para que todas las veces mezcle la lista diferente. import java.util.Random; import java.util.List; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class Main { public void insertLists(List<String> parent, List<String>... lists) { for(List<String> current : lists) { parent.addAll(current); } } public void suffle(List<String> list) { } public static void main (String[] args ) { Main main = new Main(); List<String> mix = new ArrayList<>(); try { final Scanner reader = new Scanner (System. in); System. out. println("Ingrese las letras separadas por espacios"); String[] letters = reader. nextLine(). split(" "); System. out. println("Ingrese los números separados por espacios"); String[] numbers = reader. nextLine(). split(" "); main. insertLists(mix, Arrays. asList(letters ), Arrays. asList(numbers )); main.suffle(mix); System. out. println("Ha ocurrido un error. Vea el rastreo de pila"); e.printStackTrace(); } } } }
Título: Re: Mezclar 2 datos tipo String.
Publicado por: Coke951 en 18 Abril 2015, 20:33 pm
Perfecto, nunca habia tocado lo de List y Array List, en mi clase de POO nunca lo he visto, investigare mas pero tu codigo funciona de maravilla y se como modificarlo para lo que necesito.
Muchas Gracias Gus Garsaky!
|