【Flutter / Dart】 ランダムな文字列を生成する方法を紹介

Dart

今回は、Flutterで使用する言語Dartにおいてランダムな文字列を表示する方法を紹介します。

ログイン機能などを実装する際にランダムな文字列を使用したくなるかと思います。そのような方の参考になれば幸いです。

スポンサーリンク

ランダムな文字列を生成する方法

ランダムな文字列を生成するにはDartの標準ライブラリである「math」を用います。

dart:math library - Dart API
dart:math library API docs, for the Dart programming language.

こちらの「Random」クラスを用いることでランダムな文字列を生成していきます。

まずは実装するメソッドを実際のコードでみていきましょう。

String generateRandomString([int length = 32]) {
  const String charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz-._';
  final Random random = Random.secure();
  final String randomStr =  List.generate(length, (_) => charset[random.nextInt(charset.length)]).join();
  return randomStr;
}

こちらの「generateRandomString」メソッドを用いることでランダムな文字列を生成することができます。

String randomString = generateRandomString();
print(randomString);

//結果: HGUe1V9QleYkjFavPvHxq-tqhpNpG5bH

コード解説

簡単にコードを解説していきます。

まず初めにランダムな文字列に含める文字列を「charset」という変数で用意しておきます。今回は大文字小文字の英字と数字、「 – 」(ハイフン) 、「 . 」(ピリオド) 、「 _ 」(アンダースコア)をランダム生成する文字列に使用するようにしています。

「Random.secure()」にて乱数を作成しています。

そして、引数にある「length」の数だけ文字列を格納しているListを生成します。

このListはlengthの数だけ「charset」に用意している文字から一文字を取り出したもので構成されています。

この時点でのListの結果は以下のようになっています。

['0', 'A', 't', 'Z', '4', ........] //ランダムにcharsetから抜き出した32桁の文字列を格納

このListを「.join」メソッドを用いて接合します。その結果ランダムな文字列を生成することができています。

おわりに

今回は、Flutterで使用する言語Dartにおいてランダムな文字列を表示する方法を紹介させて頂きました。

初めに紹介したコードをコピペするだけでご自身の環境でも動作することを確認できると思いますので、ぜひご活用ください。

当ブログではプログラミング学習に関する記事を執筆しております。

Dartで文字列を3桁ごとに ‘ , ‘(カンマ)で区切って表示する方法を解説している記事もございます。興味がありましたら合わせてご覧ください。

最後までご覧いただきありがとうございました。

コメント

タイトルとURLをコピーしました