gpt4 book ai didi

java - 读取文本文件并根据 Java 中的输入转换为二维 int 数组

转载 作者:行者123 更新时间:2023-12-02 18:18:23 25 4
gpt4 key购买 nike

我读了一个如下所示的文本文件:

operationName1 Value

行数可变,具有不同的操作和相应的值。我可以读取该文件并获取 2D 字符串数组作为输出。这是我的代码。

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

将成为二维 int 数组:

[[0,5],[1,999],[0,8],[0,2]]

索引也很重要。所以文本文件的第一行是我的数组的第一行。

PS:如果有更好的语法(更新的语法),我愿意接受建议。

非常感谢。

最佳答案

如果您需要parallelism ? ...这可能是一种方法

AtomicInteger atomicInteger = new AtomicInteger(0);
Map<String, Integer> known = new ConcurrentHashMap<>();
Path path = Paths.get("./myFile.txt");
int[][] array = Files.lines(path)
.map(s -> s.split("\\s+", 2))
.map(a -> new int[]{
known.computeIfAbsent(a[0],
k -> atomicInteger.getAndIncrement()),
Integer.parseInt(a[1])
})
.toArray(int[][]::new);

关于java - 读取文本文件并根据 Java 中的输入转换为二维 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com