将int的字符串转换为int的数组

时间:2014-06-06 03:22:32

标签: d

假设我需要从文件中读取一行,其中包含未知数量的空格分隔的int。 如何读取一行并将其转换为一个整数数组?

在D中解决这个问题的一种简单方法是什么?

我目前的非工作尝试。

auto f = File("in");
foreach(line; f.byLine()){
  int[] arr;
  foreach(num; line.split())
    arr[] = cast(int)num;
}

2 个答案:

答案 0 :(得分:5)

使用拆分器,地图和数组:

import std.algorithm : map, splitter;
import std.stdio : File;
import std.conv : to;
import std.array : array;

void main(string[] args)
{
    // range result
    auto result = File("in")
        .byLine
        .map!((line) => splitter(line).map!((a) => to!int(a)));

    // multidimensioanl array result
    int[][] resultArr = File("in")
        .byLine
        .map!((line) => splitter(line).map!((a) => to!int(a)).array).array;

}

答案 1 :(得分:3)

使用map

import std.stdio;
import std.algorithm;
import std.conv : to; 
void main()
{
    auto f = File("in");
    foreach(line; f.byLine()){
        auto arr = map!(to!int)(splitter(line));
        writeln(arr);
    }   
}