arrays - 如何将空值添加到列表生成器元素?
问题描述
从字符串我尝试制作一个二维数组列表作为表格工作。到目前为止,下面的代码可以完美运行。当我尝试从服务器获取旧数据时,我的问题就开始了。我尝试修改下面的代码,但我不断收到错误,如下所示。
实际数据如下所示[01, 10, 04.11.2017, PN-DURUKAN, 18, B, 557.12, 20171014742, E, system, , AB40710000001680]。
如果任何数据不是这种格式(例如,如果我得到一个数据为[01, 10, 04.11.2017, ],我需要将空值放入 rest 并添加到我的列表中。我该怎么做?
错误: E/flutter (10127): [ERROR:flutter/shell/common/shell.cc(182)] Dart 错误:未处理的异常:E/flutter (10127):RangeError(结束):无效值:不在范围内302..305,含:314 E/flutter (10127):#0 RangeError.checkValidRange (dart:core/errors.dart:325:9)
编码:
Future<List<List<String>>> _makeTable(mText) async {
var entries;
entries = mText.split(":=:");
if (entries.length < 2) {
throw ArgumentError.value(mText, "text", "Invalid format");
}
int row = int.parse(entries[0]);
int col = int.parse(entries[1]);
//#####################################
//TODO: I need to modify below if statement so I can set null value instead of throw an error
//if (entries.length != 2 + row * col) {
//throw ArgumentError.value(mText, "text", "Invalid format");
//}
// List<List<String>> returnArray;
//returnArray = new List.generate(row, (i) => entries.sublist(2 + i * col, 2 + (i + 1) * col));
//#####################################
// ***** MODIFICATION SECTION *******:
List<List<String>> returnArray;
for (var i = 0; i < row; i++) {
var _mValue;
_mValue = entries.sublist(2 + i * col, 2 + (i + 1) * col);
print("$_mValue");
}
return returnArray;
}
更新代码:
Future<List<List<String>>> _makeTable(mText) async {
var entries;
entries = mText.split(":=:");
if (entries.length < 2) {
throw ArgumentError.value(mText, "text", "Invalid format");
}
int row = int.parse(entries[0]);
int col = int.parse(entries[1]);
List<List<String>> returnArray = new List<List<String>>();
for (var i = 0; i < row; i++) {
var x = 2 + i * col;
var y = 2 + (i + 1) * col;
if (y <= entries.length) {
returnArray.insert(i, entries.sublist(x, y));
}
}
return returnArray;
}
解决方案
推荐阅读
- r - 如何在 R 中创建特定的周变量?
- python - 在输入法python3中输入许多值
- javascript - 画布停止重绘焦点丢失
- python - 如何防止pytest添加LogCaptureHandler?
- reactjs - 错误:无法对未安装的组件执行 React 状态更新
- laravel - 将嵌套的 eloquent 查询转换为列出子元素
- postgresql - 如何获取导致系统进入内存崩溃的从属postgres数据库上执行的主机名和查询
- jenkins - 在 Jenkins 上安装 AWS 时出现错误“未安装 jenkins-2.232-1.1.noarch.rpm 的公钥”
- java - 无法从 Eclipse 运行简单的 maven 程序
- python-3.x - 如果“值”在列表中,则获取列名 pandas Python