【Flutter/Dart】String(文字列)をint(数値)に変換する方法!parse/tryParse

【Flutter/Dart】String(文字列)をint(数値)に変換する方法!parse/tryParse

この記事からわかること

  • Flutter/DartString(文字列)をint(数値)に変換する方法
  • parse/tryParse使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

TextFieldで数値を入力された場合などにそのままではString型なのでint型に変換したい場合はよくあると思います。今回はString(文字列)をint(数値)に変換する方法をまとめていきます。

DartでString(文字列)をint(数値)に変換する方法

DartでString(文字列)をint(数値)に変換する方法は2つあります。両者の違いは変換に失敗した時のハンドリングが異なります

intで紹介していますが、doubleなどにも同じメソッドが存在します。

parse

external static int parse(String source, {int? radix});

1つ目の方法はint型の持つparseメソッドを使用する方法です。このメソッドは引数で渡された文字列(String型)をint型へ変換します。

String numberString = "123";
int number = int.parse(numberString);
print(number); // 出力: 123

もしint型に変換できない文字列だった場合はFormatExceptionをスローします。そのためtry-catchステートメントでエラーを補足しておく必要があります。

String numberString = "ABC";

try {
  int number = int.parse(numberString);
  print(number);
} catch (e) {
  print("変換に失敗しました: $e"); 
  // 出力: 変換に失敗しました: Uncaught Error, error: Error: FormatException: ABC
}

基数(2進数など)で変換する

parseの2つ目の引数radixには基数(2進数など)を指定することで異なる進数の文字列を整数に変換することが可能になります。

  print(int.parse("1010", radix: 2));  // 2進数 → 10
print(int.parse("77", radix: 8));    // 8進数 → 63
print(int.parse("1F", radix: 16));   // 16進数 → 31
print(int.parse("z", radix: 36));    // 36進数 → 35

tryParse

external static int? tryParse(String source, {int? radix});

2つ目の方法はint型の持つtryParseメソッドを使用する方法です。このメソッドはparseと基本的にはほとんど同じですが変換できなかった際にエラーではなくnullを返します

String numberString = "ABC";
int? number = int.tryParse(numberString); // 失敗したらnullを返すのでint?
print(number); // 出力: null

nullを返してくれるので??(null合体演算子)を使用することでデフォルト値を設定することも可能になります。

小数点を整数に変換する

先述した通りdoubleにも同様のメソッドがありますが、小数点を整数に変換したい場合は,toIntメソッドを使用することで簡単に小数点を切り捨てることが可能です。

String decimalString = "12.34";
int number = double.parse(decimalString).toInt();
print(number); // 出力: 12

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

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

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index