如果s = "1 2 3 4 5",我们怎么能从中获得一个整数数组.我想返回一个5元素Array{Int64,1} [1; 2; 3; 4; 5].
Dav*_*ers 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"
Run Code Online (Sandbox Code Playgroud)
现在你可以使用数组理解:
[parse(Int, ss) for ss in split(s)]
Run Code Online (Sandbox Code Playgroud)
在这里,parse(Int, ss)将字符串解析ss为整数.
另请注意,这会返回一维向量,而不是二维数组.这里没有理由更喜欢二维数组 - 这是一个自然的一维对象.
DNF*_*DNF 11
如果您使用的是0.5或更高版本,则还可以执行以下操作:
int_s = parse.(split(s))
Run Code Online (Sandbox Code Playgroud)
尾随点是新的紧凑广播符号.可能,这将是未来版本中的首选语法.
int_s = map(x -> parse(x), split(s))
Run Code Online (Sandbox Code Playgroud)
编辑
或者@David P. Sanders建议,我同意
int_s = map(parse, split(s))
Run Code Online (Sandbox Code Playgroud)
我已经省略了Int部分因为我不知道你是否计划在你的字符串中只有整数