首页 > 解决方案 > Julia - 如何将数组中的子字符串/字符串放入自己的单独数组中

问题描述

我正在解决一个 AOC 问题,并花了几个小时试图解决这个问题。

我有一个通过读取文件并使用“split”函数创建的子字符串数组。每个单独的子数组有两个元素:

julia> col[3]
2-element Array{SubString{String},1}:
 "SMS"
 "GFS"

julia> col[3][2]
"GFS"

我想让每个子数组的最后一个元素成为包含最后一个元素的数组。我尝试使用这样的循环:

for i in col
         i[2] = [i[2]]
       end
ERROR: MethodError: Cannot `convert` an object of type Array{SubString{String},1} to an object of type SubString{String}

我尝试了几种解决方法,但无济于事。但是,如果我一次访问一个子数组,它似乎工作了一半。

Julia> col[3][2]
"GFS"

julia> [col[3][2]]
1-element Array{SubString{String},1}:
 "GFS"
#creates a separate array like I want, but an error gets thrown if I try to assign it
julia> col[3][2] = [col[3][2]]
ERROR: MethodError: Cannot `convert` an object of type Array{SubString{String},1} to an object of type SubString{String}

我是 Julia 新手,我怀疑错误与类型有关,但尽管进行了大量研究,但似乎很简单的问题的解决方案却让我无法理解。除非我觉得我已经用尽所有其他途径,否则我从不在这里发帖,所以我将不胜感激任何帮助或指导。

标签: arraystypesjulia

解决方案


您必须创建一个新的外部数组并填充它。内部数组和外部数组都是有类型的,因此它们只能包含一种类型。您可能希望内部数组是 type Array{Any, 1},然后外部数组应该将该类型作为其元素类型。


推荐阅读