如何从字符串转换为数组?

时间:2016-09-19 12:12:07

标签: julia

如果s = "1 2 3 4 5",我们如何从中获取整数数组。我想要返回5个元素Array{Int64,1} [1; 2; 3; 4; 5]

3 个答案:

答案 0 :(得分:11)

使用@isebarn时,split(s)可用于将字符串拆分为单词(默认情况下在空格处拆分):

julia> s = "1 2 3 4 5"
"1 2 3 4 5"

julia> split(s)
5-element Array{SubString{String},1}:
 "1"
 "2"
 "3"
 "4"
 "5"

现在你可以使用数组理解了:

[parse(Int, ss) for ss in split(s)]

这里,parse(Int, ss)将字符串ss解析为整数。

另请注意,这会返回一维向量,而不是二维数组。这里没有理由更喜欢二维数组 - 这是一个自然的一维对象。

答案 1 :(得分:11)

如果您使用的是0.5或更高版本,您也可以这样做:

int_s = parse.(split(s))

尾随点是新的紧凑广播符号。可能,这将是未来版本中的首选语法。

答案 2 :(得分:5)

int_s = map(x -> parse(x), split(s))

修改

或@David P. Sanders建议,我同意

int_s = map(parse, split(s))

我遗漏了Int部分,因为我不知道你是否计划在字符串中只有整数