黑马程序员技术交流社区
标题:
一维字符数组和二维字符数组问题
[打印本页]
作者:
菜鸟励志要逆袭
时间:
2013-6-26 11:41
标题:
一维字符数组和二维字符数组问题
本帖最后由 菜鸟励志要逆袭 于 2013-6-26 15:40 编辑
这本是我在本论坛看到的一个帖子的内容。本意是把题中str字符串数组链接输出。我想把str字符串数组赋予一个字符二维数组然后依次输出。遇到了一下问题。望大神指教:
static void Main(string[] args)
{
string[] str = new string[]{ "abc", "dea", "fgh" };
char[][] myChar = new char[3][];
char[] input = new char[3];
for (int i = 0; i < str
.Length; i++)//用一个字符数组接收一个字符串
{
input = str
.ToCharArray();
for (int n = 0; n < input.Length; n++)
{
myChar
[n] = input[n];//我想把一维字符数组赋给一个二维数组的一行。#这里出错
}
}
for (int j = 0; j < str.Length; j++) {
for (int k = 0; k < myChar[j][k] ;k++)
Console.WriteLine(myChar[j][k]);
}
Console.ReadKey();
}
望各位大神指教一个闲的蛋疼的人!
作者:
万大述
时间:
2013-6-26 13:30
关键在于得到二维数组的行标和列标,这样才能实例化一个合适大小的二维数组。参考代码如下:
int maxStr = 0;
string[] str = new string[] { "abc","dga444","fgh" };
for (int i = 0; i < str.Length; i++) //得到元素长度的最大值,即二维数组的列标。
{
if (str[i].Length > maxStr)
{
maxStr = str[i].Length;
}
}
char[,] myChar = new char[str.Length,maxStr]; //这是关键,得到一个合适大小的二维数组
char[] input = new char[3];
for (int i = 0; i < str.Length; i++)//用字符串个数做行标的极限值
{
input = str[i].ToCharArray();
for (int n = 0; n < input.Length; n++)
{
myChar[i, n] = input[n];//这里出的问题和myChar[i,n]的实例化无列标有关
}
}
for (int j = 0; j < str.Length; j++) //输出
{
for (int k = 0; k < str[j].Length; k++)
Console.Write(myChar[j,k]);
}
Console.ReadKey();
作者:
菜鸟励志要逆袭
时间:
2013-6-26 15:30
谢谢。受教!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2