将定界字符串转换为二维数组 [英] Converting a delimited string to 2-D array
本文介绍了将定界字符串转换为二维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个由两位数字组成的网格,该字符串用换行符和空格分隔,例如:
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屋!
查看全文