質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

1000閲覧

c# 文字数を決めるコード(乱数に近いかな?)

come25136

総合スコア258

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

1クリップ

投稿2015/06/12 09:18

編集2015/06/12 10:13

c#で乱数的なものを作成したいです

やりたいこと

「あいうえお」の中から3~5文字取り出したいのですがやり方がわかりません
都合上簡単な質問文ですが教えてくださいお願いします(_ _)

※追記 現在のコード (都合上最低限必要なコードしか載せていません)

lang

1public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 this.MaximizeBox = false; 7 this.FormBorderStyle = FormBorderStyle.FixedSingle; 8 } 9 10 private void button1_Click(object sender, EventArgs e) 11 { 12 } 13 }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Tak1wa

2015/06/12 09:27

あいうえお、は重複しても良いですか?(例:えうう) 3~5文字もランダムですか?それとも固定ですか?
come25136

2015/06/12 09:49

すみませんランダムでした
guest

回答1

0

ベストアンサー

こんにちは。

前回の応用で実現できそうですが、出来ないところがありましたか。
前回の応用となると以下のようになります。

lang

1static void Main(string[] args) 2{ 3 var hoge = GetHoge(); 4 Console.WriteLine(hoge); 5 Console.Read(); 6} 7 8private static readonly string randomInput = "あいうえお"; 9static string GetHoge() 10{ 11 StringBuilder sb = new StringBuilder(); 12 Random r = new Random(); 13 //↓文字数固定であればこれを固定値にする 14 int length = r.Next(3, 5); //3~5文字 15 while(sb.Length <= length) 16 { 17 int pos = r.Next(randomInput.Length); 18 char c = randomInput[pos]; 19 //↓文字重複させたくない場合 20 //if (sb.ToString().IndexOf(c) >= 0) continue; 21 sb.Append(c); 22 } 23 return sb.ToString(); 24}

もし問題があればコメントにてお知らせください。


追記
使い方として以下のような感じになるでしょう。

lang

1public partial class Form1 : Form 2{ 3 public Form1() 4 { 5 InitializeComponent(); 6 this.MaximizeBox = false; 7 this.FormBorderStyle = FormBorderStyle.FixedSingle; 8 } 9 10 private void button1_Click(object sender, EventArgs e) 11 { 12 string randomCode = GetHoge(); 13 textBox1.Text = randomCode; 14 } 15 16 private static readonly string randomInput = "あいうえお"; 17 static string GetHoge() 18 { 19 StringBuilder sb = new StringBuilder(); 20 Random r = new Random(); 21 //↓文字数固定であればこれを固定値にする 22 int length = r.Next(3, 5); //3~5文字 23 while (sb.Length <= length) 24 { 25 int pos = r.Next(randomInput.Length); 26 char c = randomInput[pos]; 27 //↓文字重複させたくない場合 28 //if (sb.ToString().IndexOf(c) >= 0) continue; 29 sb.Append(c); 30 } 31 return sb.ToString(); 32 } 33}

メモ帳的なものに云々については別途質問しなおしたほうが良いでしょう。
そのほうが回答がつきやすいと思います。

投稿2015/06/12 09:37

編集2015/06/12 10:17
Tak1wa

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

come25136

2015/06/12 09:53

すみません(_ _)前回の続きではないです 今回は ボタンを押す ↓ 乱数的?なコード ↓ メモ帳的なものに入力 をしたいのです
Tak1wa

2015/06/12 10:00

まず、私が提示したメソッドを実行すると「あいうえお」の中から3~5文字をランダムで取得できます。ここまでは良いですか? その上でどの辺りの認識が異なっているのかを教えてください。
come25136

2015/06/12 10:11

コード自体は何をしているのかわかるのですが このコードを今書いているコードのどの部分に入れたらいいのかがわかりません (国語力がないのでわかりにくかったらすみません(_ _)) 今書いているコードを載せれるスペースがないので質問を修正しました
Tak1wa

2015/06/12 10:17

追記しました。確認してみてください。
come25136

2015/06/12 10:20

回答ありがとうございました!! (メモ帳的なものに入力するコードは理解しているので質問しないと思います)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問