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

Julia 如何从字符串转换为数组?,julia,Julia,如果s=“1 2 3 4 5”,我们如何从中获得整数数组。我想返回一个5元素数组{Int64,1}[1;2;3;4;5] int_s = map(x -> parse(x), split(s)) 编辑 或者正如@David p.Sanders所建议的那样,我同意这一点 int_s = map(parse, split(s)) 我省略了Int部分,因为我不知道您是否计划在字符串中只包含整数正如@isebarn所使用的那样,split(s)对于将字符串拆分为单词非常有用(默认情况下在空格处

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

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

或者正如@David p.Sanders所建议的那样,我同意这一点

int_s = map(parse, split(s))

我省略了Int部分,因为我不知道您是否计划在字符串中只包含整数

正如@isebarn所使用的那样,
split(s)
对于将字符串拆分为单词非常有用(默认情况下在空格处拆分):

现在您可以使用数组理解:

[parse(Int, ss) for ss in split(s)]
这里,
parse(Int,ss)
将字符串
ss
解析为整数


还要注意,这将返回一维向量,而不是二维数组。这里没有理由选择二维数组——这是一个自然的一维对象。

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

int_s = parse.(split(s))

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

请注意,您可以(也应该)将其编写为
map(parse,split(s))
您正在创建一个新函数,该函数封装旧函数,并执行完全相同的操作。我不认为这会被优化掉(尽管可能),所以这会稍微慢一点。它还使它看起来更复杂,而实际上你只是
map
ping
parse
。例如,您可以将我的答案改写为
map(x->parse(Int,x),split(s))
;在这里您确实需要定义匿名函数,因为您无法直接映射
parse(Int,x)
函数,因为它有两个参数,而不是一个参数。我仍然觉得数组理解更容易理解,尽管我同意期望一维数组是很自然的,而且我没有理由需要二维数组。我将编辑我的问题,谢谢你的回答。另外,加入0.5功能(答案为@DNF)怎么样?谢谢你的回答,我将要求你加入已接受的答案中。
int_s = parse.(split(s))