6

スペースと混合ケースを含むランダムな文字列を生成する必要があります。

これは私がこれまでに得たすべてです:

    /// <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();
        }
    }

スペースのない大文字の文字列のみを取得しています-スープに大文字とスペースが混在するようにするには、微調整がかなり簡単である必要があると思います。

どんな助けでも大歓迎です!

4

3 に答える 3

11

これを行う最も簡単な方法は、次の値で文字列を作成することです。

private readonly string legalCharacters = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

次に、RNG を使用して、この文字列内のランダムな要素にアクセスします。

public string TypeAway(int size)
{
    StringBuilder builder = new StringBuilder();
    Random random = new Random();
    char ch;

    for (int i = 0; i < size; i++)
    {
        ch = legalCharacters[random.Next(0, legalCharacters.Length)];
        builder.Append(ch);
    }

    return builder.ToString();
}
于 2009-03-25T22:00:57.623 に答える
1

許可するすべての文字の配列から始めることができます

private static readonly char[] ALLOWED = new [] { 'a', 'b', 'c' ... '9' };

その後:

{
    ...
    for (int i = 0; i < size; i++)
    {
        ch = ALLOWED[random.NextInt(0, ALLOWED.Length)];
        builder.Append(ch);
    }

    ...

    return builder.ToString();
}

return builder.ToString();

もちろん言い換えます。random.NextInt() の構文については確信が持てませんが、インテリセンスが役に立ちます。

于 2009-03-25T22:01:15.877 に答える
0

Lorem Ipsumも使用できます。グラフィック デザイン業界では、デザイン要素からユーザーの注意をそらすことなく、ランダムでリアルなテキストを入力するために広く使用されています。

Lorem Ipsum の大きなチャンクをコード内の定数文字列にコピー アンド ペーストし、必要なサイズに部分文字列にすることができます。

あまりにも気を散らすので、これは完全にランダムなテキストよりも優れていることがわかりました.

それが役立つことを願っています。

于 2009-03-25T22:42:57.587 に答える