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

generar caracteres aleatorios

Estas en el tema de generar caracteres aleatorios en el foro de .NET en Foros del Web. Hola, pues estoy usando J# y no se como generar caracteres aleatorios, me han comentado que se hace con Math.random para numeros y RandomCharacter para ...
  #1 (permalink)  
Antiguo 16/03/2007, 14:11
 
Fecha de Ingreso: diciembre-2004
Mensajes: 346
Antigüedad: 19 años, 4 meses
Puntos: 1
generar caracteres aleatorios

Hola, pues estoy usando J# y no se como generar caracteres aleatorios, me han comentado que se hace con Math.random para numeros y RandomCharacter para los caracteres, aunque no he encontrado ejemplos, no se si alguien tenga ejemplos de esto o alguna pagina donde pueda ver ejemplos del mismo

Gracias
  #2 (permalink)  
Antiguo 16/03/2007, 18:22
Avatar de jabi  
Fecha de Ingreso: noviembre-2006
Mensajes: 120
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: generar caracteres aleatorios

Buenas AngelShady, una opción que tienes es crear un String con todos los caracteres (la cadena seria: "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), después generar un número aleatorio entre 0 y 26 (todas las posibilidades), y mediante charAt puedes extraer el carácter generado, por ejemplo podría ser algo así:

Código:
c = alfabeto.charAt((int)(Math.random() * 26));
Siendo 'c' un char y 'alfabeto' el String que contenía todos los caracteres.

A ver si te sirve, salu2.
__________________
No estoy aquí de vacaciones, creéme.
  #3 (permalink)  
Antiguo 16/03/2007, 20:26
 
Fecha de Ingreso: diciembre-2004
Mensajes: 346
Antigüedad: 19 años, 4 meses
Puntos: 1
Re: generar caracteres aleatorios

Hola, muchas gracias jabi por la explicacion, me sirvio de gran ayuda, lo acomplete y me quedo asi:

Código:
package ConsoleApplication1;

/**
 * Este programa genera 175 caracteres aleatorios
 * numeros del 0 al 9 enteros
 * letras mayusculas
 * letras minusculas
 * por: AngelShady
 */
public class CaracteresAleatorios
{

	private static void doCaracteresAleatorios()
	{

		double NumeroAleatorio;
		char LetraMinusculaAleatoria;
		char LetraMayusculaAleatoria;
		/*double randomCharacter;*/ //no genera entre 0 y FFFF
				
		System.out.println("----------------------------------------------------------------------");

		for (int i = 0; i < 175; i++) //175 caracteres en columna
		{
			NumeroAleatorio = (int)(Math.random() * ((int)'9' - (int)'0' + 1)); //numeros del 0 al 9 entero
			LetraMinusculaAleatoria = (char)('a' + Math.random() * ('z' - 'a' + 1)); // letras minusculas
			LetraMayusculaAleatoria = (char)('A' + Math.random() * ('Z' - 'A' + 1)); // letras mayusculas
			/*randomCharacter = (int)(Math.random() * (65535 + 1));*/ //no genera entre 0 y FFFF
			System.out.print("Numero aleatorio " + NumeroAleatorio + "   ");
			System.out.print("Caracter minuscula " + LetraMinusculaAleatoria + "   ");
			System.out.println("Caracter mayuscula " + LetraMayusculaAleatoria + "   ");
			/*System.out.println("Caracter " + randomCharacter);*/ //no genera entre 0 y FFFF
		}

		System.out.println("----------------------------------------------------------------------");
		System.out.println("\n");
	}

	public static void main(String[] args)
	{
		doCaracteresAleatorios();
		}

}
Esto me genera 3 columnas, esta parte la comente

Código:
/*randomCharacter = (int)(Math.random() * (65535 + 1));*/ //no genera entre 0 y FFFF
Segun mi profesor del instituto deberia generar caracteres entre 0 y FFFF, pero no me a dado resultados ya que en char arroja caractes con el signo " ? " y en int me arroja numeros aleatorios entre 65535

¿por qué?

Tambien necesito que me genere 7 columnas de 25 caracteres:

3456684685524869521756340
3456684685524897521756368
9687646848524869521759879
8973268468552486952875824

asijxkjjkaooicnaoilkdsoplkslixns
......
y asi sucesivamente

aunque si bien lo he dejado en columnas, pero no se como serian 25 caracteres consecutivos en 7 columnas dando un total de 175 caracteres aleatorios.
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 16:09.