🔖

Flutter/Dart Stringチートシート

2021/06/22に公開

Stringチートシート

String型は、オブジェクト指向型のどんなプログラミング言語にでも存在しますが、便利なプロパティやメソッドがたくさんあり、毎回調べているとコストがかかるため、まとめました。

1. はじめに

開発環境は、下記のとおりです。

カテゴリ Ver.
Flutter 2.2.0
Dart 2.13.0

2. チートシート

よく使いそうなプロパティやメソッドをご紹介します。

カテゴリ プロパティ/メソッド名
文字列が空かチェックする isEmpty
文字列が空以外かチェックする isNotEmpty
文字数を取得する length
文字列を日時(DateTime)に変換する parse
文字列を区切り文字で分割する split
文字列を置換する replaceAll
文字列の一部を取得する substring
文字列のPrefixを調べる startsWith
文字列のSuffixを調べる endsWith
文字列から空白を削除する trim / trimLeft / trimRight
文字列から日付型に変換する DateFormat('日付の書式').parseStrict('文字列')
【番外】文字列を数値に変換する int.parse('文字列')
【番外】文字列をURLエンコードする Uri.encodeQueryComponent('文字列')

3.使い方

3.1. 文字列が空かチェックする (isEmpty)

    var str = '';
    print(str.isEmpty); // true

3.2. 文字列が空以外かチェックする (isNotEmpty)

    var str = '';
    print(str.isNotEmpty); //false

3.3. 文字数を取得する (length)

    var strEn = 'Flutter';
    print(strEn.length); // 7

3.4. 文字列を日時(DateTime)に変換する(parse)

    String now = '2021-10-10 12:12';
    DateTime toDate = DateTime.parse(now);
    print(toDate); //2021-10-10 12:12:00.000
    print(toDate is DateTime); //true

3.5. 文字列を区切り文字で分割する (split)

    var str = 'Flutter Dart String';
    var strList = str.split(' ');
    print(strList); // [Flutter, Dart, String]

3.6. 文字列を置換する (replaceAll)

    var fromStr = 'Flutter Dart String';
    var toStr = fromStr.replaceAll(' ', '★'); 
    print(toStr); //Flutter★Dart★String

3.7. 文字列の一部を取得する (substring)

    var fromStr = 'Flutter Dart String';
    var toStr = fromStr.substring(8);
    var toStr2 = fromStr.substring(8, 12); 

    print(toStr);  // Dart String
    print(toStr2); // Dart

3.8. 文字列のPrefixを調べる(startsWith)

    var str = 'Flutter Dart String';
    var str2 = 'Dart String';

    print(str.startsWith('Flutter')); // true
    print(str2.startsWith('Flutter')); // false

3.9. 文字列のSuffixを調べる(endsWith)

    var str = 'Flutter Dart String';
    var str2 = 'String Dart  Flutter';

    print(str.endsWith('String'));
    print(str2.endsWith('String'));

3.10. 文字列から空白を削除する(trim / trimLeft / trimRight)

    var str = ' Flutter Dart String ';

    print(str.trim()); //Flutter Dart String
    print(str.trimLeft()); //Flutter Dart String 
    print(str.trimRight()); // Flutter Dart String

    print(str.trim().length); // 19
    print(str.trimLeft().length); //20
    print(str.trimRight().length); //20

3.11. 文字列から日付型に変換する(DateFormat.parseStrict)

    var dateTimeStr = '2022年1月1日';
    final DateTime dateTime =
        DateFormat("yyyy年MM月dd日").parseStrict(dateTimeStr);

    print(dateTime); //2022-01-01 00:00:00.000

3.12. 文字列を数値に変換する (int.parse)

    var str1 = '123'; // 半角
    var str2 = '123'; // 全角
    var str3 = 'あいおうえ';

    try {
      print(int.parse(str1));
      print(int.parse(str2)); // Invalid radix-10 number (at character 1)
      print(int.parse(str3)); // Invalid radix-10 number (at character 1)
    } on Exception catch (e) {
      print(e.toString());
    }

3.13. 文字列をURLエンコードする(Uri.encodeQueryComponent)

    String urlString = 'https://hogehoge.com/詳細ページ';
    final url = Uri.encodeQueryComponent(urlString);
    final originalURL = Uri.decodeComponent(url);
    
    print(url); // https%3A%2F%2Fhogehoge.com%2F%E8%A9%B3%E7%B4%B0%E3%83%9A%E3%83%BC%E3%82%B8
    print(originalURL); //https://hogehoge.com/詳細ページ

4. 公式ドキュメント

もっと知りたい方は、Dartで用意されているプロパティやメソッドは、公式サイトに纏められています。
是非御覧ください。

https://api.dart.dev/stable/2.10.5/dart-core/String-class.html

Discussion