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

この記事からわかること
- Flutter/DartのString(文字列)をint(数値)に変換する方法
- parse/tryParseの使い方
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Koala
- Xcode:16.0
- Flutter:3.29.2
- Dart:3.7.2
- Mac M1:Sonoma 14.6.1
TextField
で数値を入力された場合などにそのままではString
型なのでint
型に変換したい場合はよくあると思います。今回はString(文字列)をint(数値)に変換する方法をまとめていきます。
DartでString(文字列)をint(数値)に変換する方法
DartでString(文字列)をint(数値)に変換する方法は2つあります。両者の違いは変換に失敗した時のハンドリングが異なります。
- parse
- tryParse
※ 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
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。