Dart代码提交URI OJ 1010题抛出FormatException格式错误
问题根因
- 输入格式理解错误:URI 1010题的输入为2行内容,每行包含「商品编号、购买数量、商品单价」三个用空格分隔的字段,而非每个字段单独占一行。你本地测试时逐行输入单个数值,符合代码逻辑所以运行正常,但OJ测试用例的输入格式和你的预期不一致,因此触发线上报错。
- 代码第一次调用
int.parse(stdin.readLineSync()!)时,直接把包含空格的整行内容12 2 5.30传入整数转换方法,非合法整数字符串触发格式转换异常。
修复后的代码
import 'dart:io'; void main() { double total = 0; // 依次处理两行商品输入 for (int i = 0; i < 2; i++) { List<String> inputParts = stdin.readLineSync()!.split(' '); int count = int.parse(inputParts[1]); double price = double.parse(inputParts[2]); total += count * price; } print('VALOR A PAGAR: R\$ ${total.toStringAsFixed(2)}'); }
核心修改点
- 每次读取整行后先调用
split(' ')按空格拆分得到字段数组,再取对应位置的字段做类型转换 - 省略了无用的商品编号变量存储,简化逻辑
内容的提问来源于stack exchange,提问作者Mehedi Hasan
相关产品推荐
相关产品推荐

