将定界字符串转换为二维数组 [英] Converting a delimited string to 2-D array

查看:76
本文介绍了将定界字符串转换为二维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由两位数字组成的网格,该字符串用换行符和空格分隔,例如:

I have a grid of two-digit numbers written as a string delimited with newlines and spaces, e.g.:

string grid = "58 96 69 22 \n" +
              "87 54 21 36 \n" +
              "02 26 08 15 \n" +
              "88 09 12 45";

我想将其拆分为4×4数组,以便可以访问它通过诸如 separatedGrid [i,j] 之类的东西。我知道我可以使用 grid.Split('')分隔每一行中的数字,但是如何从中获得一个二维数组呢?

I would like to split it into a 4-by-4 array, so that I can access it via something like separatedGrid[i, j]. I know I can use grid.Split(' ') to separate the numbers in each row, but how do I get a 2-D array out of it?

推荐答案

因此,您想要的是将定界的多行字符串转换为2D数组:

So what you want is to convert a delimited multi-Line String into a 2D-Array:

string grid = "58 96 69 22 \n" +
    "87 54 21 36 \n" +
    "02 26 08 15 \n" +
    "88 09 12 45";

var lines = grid.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries)
                .Select(x => x.Trim().Split(' ')).ToArray();

int numberOfRows = lines.Length;
int maxNumberOfColumns = lines.Max(x => x.Length);
string[,] separatedGrid = new string[numberOfRows, maxNumberOfColumns];

for (int i = 0; i < lines.Count(); i++)
{
    string[] values = lines.ElementAt(i);
    for (int j = 0; j < values.Length; j++)
    {
        separatedGrid.SetValue(values[j], i, j);
    }
}

这篇关于将定界字符串转换为二维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆