Julia中如何将字符串数组一次性解析为Int类型矩阵
Julia 一次性解析多行输入整数字符串方案
原写法
parse.(Int,split(readlines()))失效的核心原因是:readlines()返回的是每一行内容组成的字符串数组,split函数没有直接处理字符串数组的方法,因此无法直接调用。
方案1:保留行结构,输出二维数组
如果需要保留每行的数字分组(每一行的解析结果作为子数组),使用列表推导即可实现:
result = [parse.(Int, split(line)) for line in readlines()]
输入示例:
123 456 789 101 112
输出示例:[[123, 456], [789, 101, 112]]
方案2:不保留行结构,输出一维数组
如果需要把所有行的所有数字合并为一个一维数组,有两种常用写法:
- 无中间数组的高性能写法(适合大输入):
result = parse.(Int, Iterators.flatten(split.(readlines())))
- 简洁写法(适合小输入):
result = vcat(parse.(Int, split.(readlines()))...)
输入同上述示例时,两种写法的输出均为[123, 456, 789, 101, 112]
内容的提问来源于stack exchange,提问作者yosuga
相关产品推荐
相关产品推荐

