elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Mezclar 2 datos tipo String.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mezclar 2 datos tipo String.  (Leído 3,971 veces)
Coke951

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Mezclar 2 datos tipo String.
« 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.

Código:
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:


Gracias de antemano.


En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: Mezclar 2 datos tipo String.
« Respuesta #1 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.

Código
  1. import java.util.Random;
  2. import java.util.List;
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.Collections;
  6. import java.util.Scanner;
  7.  
  8. public class Main {
  9.    public void insertLists(List<String> parent, List<String>... lists) {
  10.        for(List<String> current : lists) {
  11.            parent.addAll(current);
  12.        }
  13.    }
  14.    public void suffle(List<String> list) {
  15.        Collections.shuffle(list, new Random(System.nanoTime()));
  16.    }
  17.    public static void main(String[] args) {
  18.        Main main = new Main();
  19.        List<String> mix = new ArrayList<>();
  20.        try {
  21.            final Scanner reader = new Scanner(System.in);
  22.            System.out.println("Ingrese las letras separadas por espacios");
  23.            String[] letters = reader.nextLine().split(" ");
  24.            System.out.println("Ingrese los números separados por espacios");
  25.            String[] numbers = reader.nextLine().split(" ");
  26.            main.insertLists(mix, Arrays.asList(letters), Arrays.asList(numbers));
  27.            main.suffle(mix);
  28.        } catch(Exception e) {
  29.            System.out.println("Ha ocurrido un error. Vea el rastreo de pila");
  30.            e.printStackTrace();
  31.            System.exit(-1);
  32.        }
  33.        for(String digit : mix) {
  34.            System.out.print(digit);
  35.        }
  36.    }
  37. }


En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
Coke951

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Mezclar 2 datos tipo String.
« Respuesta #2 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!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines