[解決済み】ランダム文字列ジェネレータが同じ文字列を返す [重複]問題]
2022-04-05 18:18:32
質問
ランダム文字列ジェネレータを開発したのですが、なかなか思ったように動いてくれません。 私の目標は、これを2回実行し、2つの異なる4文字のランダム文字列を生成できるようにすることです。 しかし、1つの4文字のランダムな文字列が2回生成されるだけです。
以下は、そのコードと出力例です。
private string RandomString(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();
}
// get 1st random string
string Rand1 = RandomString(4);
// get 2nd random string
string Rand2 = RandomString(4);
// create full rand string
string docNum = Rand1 + "-" + Rand2;
...そして、出力はこのようになります。 UNTE-UNTE ...しかし、次のように見えるはずです。 UNTE-FWNU
どうすれば、はっきりとしたランダムな2つの文字列を確保できるのでしょうか?
どのように解決するのですか?
メソッド内でRandomのインスタンスを作っているため、連続して呼び出されると同じ値を返してしまうのです。私ならこんな風にします。
private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden
private string RandomString(int size)
{
StringBuilder builder = new StringBuilder();
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();
}
// get 1st random string
string Rand1 = RandomString(4);
// get 2nd random string
string Rand2 = RandomString(4);
// creat full rand string
string docNum = Rand1 + "-" + Rand2;
(あなたのコードの修正版)
関連
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaScriptでランダムな文字列/文字を生成する
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] 英数字のランダムな文字列を生成する方法
-
[解決済み] PHPランダム文字列ジェネレータ
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】大文字と数字を含むランダムな文字列の生成
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] ランダムな英数字の文字列を生成するにはどうすればよいですか?
-
[解決済み】乱数発生器が1つの乱数しか発生させない。