如何将格式化的字符串添加到列表或数组?

时间:2018-07-16 08:16:23

标签: arrays list dart flutter

我有一个如下所示的传入套接字数据;

示例1 :        1#。#4#。#B#。#175.52#。#USD#。#货币

示例2: 2#。#4#。#MyName#。#MySurname#。#MyCity#。#MyCountry#。#YourName#。#YourSurname#。#YourCity#。#YourCountry

示例1的说明:        分隔器: #。#        列数:4        行数:1

                Col1    Col2    Col3    Col4
Row-1:          B       175.52  USD     Currency

示例2的说明:        分隔器: #。#        列数:4        行数:2

                Col1        Col2        Col3        Col4
Row-1:          MyName      MySurname   MyCity      MyCountry
Row-2:          YourName.   YourSurname YourCity    YourCountry

在飞镖(或飞镖)中,如何将其添加到列表或数组中?最佳做法是什么? 如何使用分割函数迭代传入的字符串并添加一些数组?

更新1:

我知道如何使用拆分功能。我的问题是我需要在表,数组或映射中添加字符串,以便可以将其保存到设备中并在以后使用。如何实现呢?我需要在Fluter中使用该功能。

main() {
  String mText = "1#.#4#.#B#.#175.52#.#USD#.#Currency";
  List<String> mData = mText.split("#.#");
  print(mData.toString());
  // The List: [1, 4, B, 175.52, USD, Currency]
}

请帮忙吗?

2 个答案:

答案 0 :(得分:2)

这可以做到吗?

List<List<String>> makeTable(String text) {
  var entries = text.split("#.#");
  if (entries.length < 2) {
    throw ArgumentError.value(text, "text", "Invalid format");
  }
  int row = int.parse(entries[0]);
  int col = int.parse(entries[1]);
  if (entries.length != 2 + row * col) {
    throw ArgumentError.value(text, "text", "Invalid format");
  }
  return List.generate(row, (i) => 
      entries.sublist(2 + i * col, 2 + (i + 1) * col));
}

这会将前两个条目解析为整数以找到所需的尺寸,然后创建一个包含其余条目的列表列表(字符串)。

答案 1 :(得分:0)

很可能您需要使用intl包来处理字符串操作。 “该软件包提供了国际化和本地化的功能,包括消息翻译,复数形式和性别,日期/数字格式和解析以及双向文本。”

关于第二个问题-我将创建类Person,其名称,姓氏,城市,国家/地区字符串字段,然后使用List来保存我的数据。