首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法从字符串中获取数据并将其映射到C#中的3D数组?

有没有办法从字符串中获取数据并将其映射到C#中的3D数组?
EN

Stack Overflow用户
提问于 2022-09-16 09:12:28
回答 2查看 66关注 0票数 1

我正在尝试编写一个脚本来读取存储3D(?)的输入.txt文件。每一行上的矩阵(每一行都是不同的矩阵),我已经设法将文件的行切割成单独的字符串,现在我必须读取其中一个字符串(第一行),这是由方括号、逗号和数字组成的一行。

代码语言:javascript
复制
//example
[[[[1, []], [6, [1, 2, 11]], [0, [11]]], [[0, [2]], [0, [2]], [0, [11]]], [[0, [1]], [6, []], [0, [11]]]], [[[0, []], [0, []], [0, [11]]], [[0, []], [0, []], [0, [11]]], [[0, [2]], [0, [1,2]], [0, [11]]]], [[[0, [2]], [6, [11]], [0, [11]]], [[0, [6, 4]], [0, []], [0, [11]]], [[0, [1, 2]], [6, []], [0, [2, 11]]]]]

3列、3行和3“层”(始终有3层,但每个文件的第一行矩阵的列数和行数将有所不同)

矩阵从左上角(1x,1y,1z)开始,并向后遍历每个“维度”(例如,x1 y1 z1 -> x1 y1 z2 -> x1 y1 z3 x1 y2 z1 -> -> x1 z1 z1 y2 ->x1 x1 y2,等等),

矩阵的每个单元看起来类似于[int,<逗号分隔的int列表,如果没有ints>,则没有任何内容]。

与其他文件的第一行矩阵相比,上面的示例相对较小(矩阵的平均大小为72x43x3)。

而且,由于矩阵的大小因文件的不同而异,所以我不能强求它。

我可以手动读取矩阵,但我不知道如何告诉C#如何读取矩阵。我不太擅长C# (或者一般的编码),所以我不知道从哪里开始。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-18 06:53:34

我处理了一些名为Regex的东西,并且能够(至少以子字符串的形式)获得我想要的所有部分:

代码语言:javascript
复制
/\[[0-9]+,\s\[([0-9]*,?\s*[0-9]*)*\]{1,2}/gi

我可能会使用某种JSON数组,但这对我来说太长了。

票数 0
EN

Stack Overflow用户

发布于 2022-09-16 09:41:59

您可以简单地获取矩阵的txt字符串,然后反序列化这个测试以获得您的3d矩阵。示例:

代码语言:javascript
复制
var txtString = "[[[[1, []], [6, [1, 2, 11]], [0, [11]]], [[0, [2]], [0, [2]], [0, [11]]], [[0, [1]], [6, []], [0, [11]]]], [[[0, []], [0, []], [0, [11]]], [[0, []], [0, []], [0, [11]]], [[0, [2]], [0, [1,2]], [0, [11]]]], [[[0, [2]], [6, [11]], [0, [11]]], [[0, [6, 4]], [0, []], [0, [11]]], [[0, [1, 2]], [6, []], [0, [2, 11]]]]]";
var matrix = JsonConvert.DeserializeObject(txtString);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73742533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档