Dartで文字列を結合する4つの方法!【Flutter対応】

Dartで文字列を結合する方法について書いています。

下記のような場合に文字連結を使用します。

  • ユーザー名とメッセージを組み合わせて表示したい
  • APIレスポンスを整形してログに出力したい
  • FlutterでUI用のテキストを動的に生成したい

本記事では、Dartで文字列を結合する方法を網羅的に解説しています。
※ 載せているコードはFlutter 3.29.3 / Dart 3.7.2で動作を確認しています。

Dartで文字列を結合する主な方法一覧

Dartには、文字列を結合する方法がいくつか用意されています。

  • + 演算子を使う方法
  • 文字列補間(String Interpolation)
  • StringBuffer を使う方法
  • join() を使う方法(リスト結合)

それぞれ順番に見ていきましょう。

+演算子で文字列を結合する方法

最もシンプルなのが、+ 演算子を使う方法です。

void main() {
  String firstName = 'Taro';
  String lastName = 'Yamada';

  String fullName = firstName + ' ' + lastName;
  print(fullName);
}

firstName変数とlastName変数に、それぞれ文字列をいれています。
その次の行で、+演算子を使用して変数の文字列を連結して、fullName変数に格納し出力しました。

結果「Taro Yamada」のように連結された文字列が返ってくることが確認できました。

特徴

  • 書き方が直感的でわかりやすい
  • 少量の文字列結合に向いている

注意点

  • 結合回数が多いとパフォーマンスが低下しやすい
  • 可読性が悪くなりがち

文字列補間(String Interpolation)で結合する方法

Dartでは文字列補間が使えます、可読性の高いコードになるためオススメです。

void main() {
  String name = 'Taro';
  int age = 20;

  String message = '名前は$name、年齢は$age歳です。';
  print(message);
}

変数を二つ用意して、message変数に対して、2つの変数を埋めた文字列を格納しています。
$name$ageとすることで、文字列の中で展開されます。

結果を確認すると「名前はTaro、年齢は20歳です。」と出力されました。

式を埋め込みたい場合

文字列を埋め込むときに、式の結果を展開することができます。

void main() {
  int price = 100;
  int count = 3;

  String result = '合計金額は${price * count}円です。';
  print(result);
}

結果「合計金額は300円です。」が出力されます。

特徴

  • 非常に読みやすい
  • FlutterのUIテキストで特に使われる
  • 数値や計算結果もそのまま埋め込める

👉 基本的にはこの方法がオススメです。

StringBufferを使って文字列を結合する方法

DartではStringBufferも用意されています。
大量の文字列を結合する場合は、StringBufferを使うと効率的です。

void main() {
  var buffer = StringBuffer();

  buffer.write('Hello');
  buffer.write(' ');
  buffer.write('World');

  print(buffer.toString());
}

bufferオブジェクトを作成して、buffer.writeとすることで、文字列を追記しています。
最後にbuffer.toString()で結合された文字列がとりだせます。

結果「Hello World」となります。

特徴

  • ループ処理などで大量に結合する場合に高速
  • パフォーマンス重視の場面向け

使用例(ループ)

StringBufferをループしているところで使用している例です。
このようにループするような場面に向いています。

void main() {
  var buffer = StringBuffer();

  for (int i = 0; i < 5; i++) {
    buffer.write('Item$i ');
  }

  print(buffer.toString());
}

ループ毎にItem$iの内容がbufferに追記されます。
結果「Item0 Item1 Item2 Item3 Item4」が出力されます。

join()を使って文字列を結合する方法

リスト内の文字列を結合したい場合は、join() が便利です。

void main() {
  List<String> fruits = ['Apple', 'Banana', 'Orange'];

  String result = fruits.join(', ');
  print(result);
}

最初にfruitsリストを作成しています。
次の処理で、リストからjoinメソッドを使用して、リスト内の文字列を結合しています。

結果を確認すると「Apple, Banana, Orange」となりました。

特徴

  • 配列(List)をまとめて結合できる
  • 区切り文字を簡単に指定可能

どの文字列結合方法を使うべき?

用途別におすすめをまとめると、以下の通りです。

シーン おすすめ方法
簡単な結合 + 演算子
通常の文字列生成 文字列補間
大量・ループ処理 StringBuffer
Listの結合 join()

Flutter開発での文字列結合のポイント

Flutterでは、Text() ウィジェット内で文字列補間がよく使われます。

Text('カウント:$count')

UIコードが読みやすくなるため、文字列補間を積極的に使うのがおすすめです。

まとめ

Dartで文字列を結合する方法は複数ありますが、

  • 基本は文字列補間
  • パフォーマンスが重要ならStringBuffer
  • リストはjoin()

と使い分けるのがポイントです。

FlutterやDartのコードをより読みやすく、保守しやすくするためにも、適切な文字列結合方法を選びましょう。

コメント