Dart 区切り文字を指定してリスト(配列)を連結して文字列に変換する

  • 作成日 2022.11.07
  • 更新日 2022.11.18
  • Dart
Dart 区切り文字を指定してリスト(配列)を連結して文字列に変換する

Dartで、区切り文字を指定してリスト(配列)を連結して文字列に変換するコードを記述してます。「join」に区切り文字を指定することで変換することができます。空のリストに使用すると空文字が返ります。

環境

  • OS windows11 home
  • Dart 2.18.4

連結して文字列に変換

連結して文字列に変換するには「 join 」を使用します。

リスト.join(区切り文字)

※String型が返ります

実際に、使用して変換してみます。「runtimeType」で変換後の型も取得してます。

void main() {
  var list = ['aaa', 'bbb', 'ccc'];

  print(list.join('-')); // aaa-bbb-ccc
  print(list.join(',')); // aaa,bbb,ccc
  print(list.join('')); // aaabbbccc
  print(list.join('-').runtimeType); // String
}

実行結果を見ると、変換されていることが確認できます。

数値であっても、文字列に変換されます。

void main() {
  var list = [1, 2, 3];

  print(list.join('-')); // 1-2-3
  print(list.join(',')); // 1,2,3
  print(list.join('')); // 123
  print(list.join('-').runtimeType); // String
}

空のリストに使用すると空文字となります。

void main() {
  var list = [];

  print(list.join('-')); //
  print(list.join('-').runtimeType); // String
}

二次元のリスト

見た目はおかしいですが、二次元のリストにも使用できます。

void main() {
  var list = [['aaa', 'bbb'],['ccc', 'ddd']];

  print(list.join('-')); // [aaa, bbb]-[ccc, ddd]
  print(list.join(',')); // [aaa, bbb],[ccc, ddd]
  print(list.join('')); // aaa, bbb][ccc, ddd]
  print(list.join('-').runtimeType); // String
}

1度フラットにしてから使用すると各値に対して、連結することが可能です。

void main() {
  var list = [['aaa', 'bbb'],['ccc', 'ddd']].expand((v) => v).toList();

  print(list.join('-')); // aaa-bbb-ccc-ddd
  print(list.join(',')); // aaa,bbb,ccc,ddd
  print(list.join('')); // aaabbbcccddd
  print(list.join('-').runtimeType); // String
}

文字列からリスト(配列)に変換

文字列からリストに戻すには「split」を使用します。

void main() {
  var list = [1, 2, 3];

  var result = list.join('-');

  print(result.split("-")); // [1, 2, 3]
}