スペースとmixedCaseでランダムな文字列を生成する必要があります。スペースと大文字と小文字が混在するランダムな文字列を取得する方法は?
Thisは、私がこれまでに得たすべてである:
/// <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();
}
}
私はスペースなしでのみ大文字の文字列を取得しています - 私は微調整はかなりスープに混在する場合、スペースを取得するためにstriaghtforwardされなければならないと考えています。
大変助かりました!
あなたの例がしていることは、65と90(両端を含む)の間のUnicode文字の値を選んでいるため、まったく同じことです。あなたがそれをもっとランダムにしたいのであれば(あなたが望むことを定義する)、.NETが提供するよりも "より良い" PRNGが必要になります。 –
私はそれを打つとあなたに知らせる - 私はとにかく、ありがとう! – JohnIdol
ランダム化を2回繰り返すことで、ランダム化されることはありません。文字列内のすべての文字が等確率で表示されるようにするには、これは良いオプションです。 (ただし、legalCharactersにスペース文字を追加する必要があり、1/2809の確率で2つの連続するスペースが得られます)。 –