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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

4回答

3341閲覧

8桁の英数字からなるランダムな文字列を作りたい

terate

総合スコア103

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

0クリップ

投稿2019/08/26 12:02

Rubyで8桁の英数字からなるランダムな文字列を作りたいのですがどのように書けば良いでしょうか?
ただし、英語は小文字のみしか使えないものとする。アンダーバー、ハイフン、ドットも使えないものとする。

ex.
a1bdwi23
akj7sa98
dksas2ok

などなど。

以上、よろしくお願いいたします。

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

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

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

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

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

guest

回答4

0

今回の例では英数字なので、ランダムに取り出したい文字列を用意するのに Range が使えそうです

ruby

1# 範囲を指定した文字列を配列に展開 2p value_seed = [*'a'..'z', *'0'..'9'] 3# => ['a', 'b', 'c', ..., 'z', '0', '1', '2', ..., '8', '9'] 4 5# 配列から8字をランダムに取り出し 6p value_seed.sample(8) 7# => ['4', 'd', 'v', 'w', 'z', 'o', '2', 'u'] 8 9# 取り出した要素を結合して文字列に変換 10p value_seed.sample(8).join 11# => '4dvwzo2u' 12# 13# (例示のため、同じ文字を引き出したと仮定) 14# 実際は実行時に毎回値が変わる

各メソッドについては公式ドキュメントのほうに記述がありますので、調べてみてください

なにか参考になれば幸いです

Link

投稿2019/08/26 13:49

編集2019/09/09 01:43
gouf

総合スコア2321

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

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

0

ベストアンサー

まず使える文字をすべて使った文字列を作ります。
str = "012...abc..."
次に 0 から文字列の長さ未満の乱数を作ります。
その得られた乱数を r とすると、str[r] で使える文字からランダムで一文字選んだことになります。
それを 8 回繰り返して連結すると目的の文字列が得られます。

投稿2019/08/26 12:10

Zuishin

総合スコア28673

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

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

terate

2019/08/26 12:31

ありがとうございます!!
guest

0

回答にはなっていませんが^^;

ランダムな文字列

利用目的によって、作成方法は変わるかと。
安全性や均一な分散が必要な場合、ちゃんと発生させる乱数やその使用方法を吟味しなくてはならないと思います。

投稿2019/08/28 22:33

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

参考情報

  • はじめてのRuby!配列をランダムに取得・入れ替え

https://www.sejuku.net/blog/72965

投稿2019/08/28 22:15

katoy

総合スコア22328

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問