Necesito generar una cadena aleatoria con espacios y mixedCase.¿Cómo obtener cadenas aleatorias con espacios y mayúsculas y minúsculas?
This es todo lo que tengo hasta ahora:
/// <summary>
/// The Typing monkey generates random strings - can't be static 'cause it's a monkey.
/// </summary>
/// <remarks>
/// If you wait long enough it will eventually produce Shakespeare.
/// </remarks>
class TypingMonkey
{
/// <summary>
/// The Typing Monkey Generates a random string with the given length.
/// </summary>
/// <param name="size">Size of the string</param>
/// <returns>Random string</returns>
public string TypeAway(int size)
{
StringBuilder builder = new StringBuilder();
Random random = new Random();
char ch;
for (int i = 0; i < size; i++)
{
ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));
builder.Append(ch);
}
return builder.ToString();
}
}
estoy recibiendo sólo cadenas en mayúsculas, sin espacios - Creo que el truco debe ser bastante striaghtforward para obtener mayúsculas y minúsculas y espacios en la sopa.
Cualquier ayuda muy apreciada!
Lo que hace su ejemplo es exactamente lo mismo que lo que hago porque está eligiendo un valor de carácter Unicode entre 65 y 90 (inclusive). Si lo quiere incluso "más aleatorio" (defina que como quiera), necesitará un PRNG "mejor" del que proporciona .NET. –
Le daré una oportunidad y le haré saber que me gusta, de todos modos, ¡gracias! – JohnIdol
Nada se vuelve más aleatorio aleatorizando dos veces. Esta es una buena opción si quieres que todos los personajes de la cadena aparezcan con la misma probabilidad. (Pero necesita agregar el carácter de espacio a legalCharacters, y obtendrá dos espacios consecutivos con 1/2809 de probabilidad). –