如果s = "1 2 3 4 5"
,我们如何从中获取整数数组。我想要返回5个元素Array{Int64,1}
[1; 2; 3; 4; 5]
。
答案 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部分,因为我不知道你是否计划在字符串中只有整数