回顾:列表整理器
本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 9 课,共 65 课。
挑战
简单创建一个程序,按顺序对数字列表执行多项操作,以管理数据处理流程。你的程序应当:
- 读取一个表示数据集名称的字符串输入
- 读取多个表示原始数据值的整数输入(输入会在你收到
-999时结束) - 在列表开头(位置 0)插入值
100 - 使用
removeWhere()从列表中移除所有负数 - 使用
sort()按升序排列剩余数字 - 使用
isEmpty检查最终列表是否为空 - 按照下方所示的准确格式输出数据处理结果
例如,如果数据集名称是 "Sales Data",值为 45、-12、78、-5、23,你的程序应输出:
Dataset: Sales Data
Original data: [45, -12, 78, -5, 23]
Step 1: Inserted 100 at beginning
After insertion: [100, 45, -12, 78, -5, 23]
Step 2: Removed negative numbers
After removal: [100, 45, 78, 23]
Step 3: Sorted in ascending order
After sorting: [23, 45, 78, 100]
Final result: List is not empty
Processing complete: 4 values remaining如果数据集名称是 "Temperature Readings",值为 -10、-5、-20,你的程序应输出:
Dataset: Temperature Readings
Original data: [-10, -5, -20]
Step 1: Inserted 100 at beginning
After insertion: [100, -10, -5, -20]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining如果数据集名称是 "Error Values",且唯一的值是 -50,你的程序应输出:
Dataset: Error Values
Original data: [-50]
Step 1: Inserted 100 at beginning
After insertion: [100, -50]
Step 2: Removed negative numbers
After removal: [100]
Step 3: Sorted in ascending order
After sorting: [100]
Final result: List is not empty
Processing complete: 1 values remaining你的程序必须严格按照指定顺序执行所有操作:先使用 insert() 在位置 0 插入值 100,然后使用 removeWhere() 移除负数,再使用 sort() 对列表排序,最后检查列表是否 isEmpty。如果最终列表没有元素,则显示 "List is empty";如果列表中有元素,则显示 "List is not empty"。
亲手试试
import 'dart:io';
void main() {
// 读取数据集名称
String? datasetName = stdin.readLineSync();
// 读取数字,直到遇到 -999
List<int> originalData = [];
while (true) {
int? number = int.parse(stdin.readLineSync()!);
if (number == -999) {
break;
}
originalData.add(number);
}
// 输出初始信息
print('Dataset: $datasetName');
print('Original data: $originalData');
// TODO:在下方编写你的代码
// 1. 在列表开头(位置 0)插入 100
// 2. 使用 removeWhere() 移除所有负数
// 3. 使用 sort() 将列表按升序排序
// 4. 使用 isEmpty 检查列表是否为空
// 5. 按要求的格式输出结果
}逻辑与流程控制中的所有课
自己练习: Dart 在线编译器