【发布时间】:2016-07-17 14:14:34
【问题描述】:
我阅读了一个如下所示的文本文件:
operationName1 Value
行数不定,有不同的操作和对应的值。我可以读取文件并获得一个二维字符串数组作为输出。这是我的代码。
try{
Path path = Paths.get("./myFile.txt");
String[][] array = Files.lines(path)
.map(s -> s.split("\\s+", 2))
.map(a -> new String[]{a[0], a[1]})
.toArray(String[][]::new);
}catch(IOException e){
}
问题:如何更改我的代码以获取 2d int 数组,其中 operationName1 为“0”而 operationName2 为“1”(只有两个可能的操作,每个操作由特定字符串定义)?
这个文本文件:
operationOne 5
OtherOp 999
operationOne 8
operationOne 2
会变成那个 2d int 数组:
[[0,5],[1,999],[0,8],[0,2]]
索引也很重要。所以文本文件的第一行是我数组的第一行。
PS:如果有更好的语法(更新的),我愿意提出建议。
非常感谢。
【问题讨论】:
-
嘿大卫,为什么不使用上一个问题的答案并自定义它?
-
您拥有
a[0]中的值。测试这个值是什么并将其映射到相应的数字 0 或 1。 -
你为什么要在这里使用流?你打算使用并行性吗?如果不是,那么简单的循环可能会更具可读性(并且可能会快一点)。