4.数组的数组(变长数组)
可以使用变长数组,其中每行都有不同的元素个数。为此,需要这样一个数组,其中的每个元素都是另一个数组。也可以有数组的数组的数组,或更复杂的数组。但是,注意这些数组必须有相同的基本类型。
1)声明数组的数组(变长数组),其语法要在数组的声明中指定多个方括号对,例如:
int[][] jaggedIntArray;
2)初始化
有两种方式:可以初始化包含其他数组的数组(称之子数组)然后依次初始化子数组:
jaggedIntArray=new int[2][];
jaggedIntArray[0]=new int[3];
jaggedIntArray[1]=new int[4];
也可以使用上述字面值赋值的一种改进形式:
jaggedIntArray=new int[3][]{new int[]{1,2,3},new int[]{1},new int[]{1,2}};
也可以简化,把数组的初始化和声明放在同一行上,如:
int[][] jaggedIntArray={new int[]{1,2,3},new int[]{1},new int[]{1,2}};
3)使用foreach迭代时,通常需要嵌套该循环,循环该数组本身和每个子数组。因为数组jaggedIntArray包含的是int[]元素,而不是int元素。
5.3 字符串的处理
1.string类型变量可以看作是char变量的只读数组,如:
string myString=" A string";
char myChar=myString[4];
2.但是,不能用这种方式为各个字符变量赋值。为了获得一个可写的char数组,可以使用下面的代码,其中使用了数组变量的ToCharArray()命令:
string myString=" A string";
char[] myChars=myString.ToChatArray();
接着就可以用标准方式处理char数组。也可以在foreach循环中使用字符串。
3.myString.Length;
4.myString.ToLower(); myString.ToUpper();
5.<string>.Trim()
1)可以使用<string>.Trim()删除输入内容前面<string>.TrimStart()的和后面的空格<string>.TrimEnd()。
2)也可以使用该命令删除指定的字符,只要在一个char数组中指定这些字符即可,如:
char[] trimChars={' ','e','s'};
string userResponse=Console.ReadLine();
userResponse=userResponse.Trim(trimChars);
if(userResponse=="y")
{
//act on response.
}
6.<string>.PadLeft()和<string>.PadRight()
1)可以在字符串的左边或者右边添加空格
myString="Aligned";
myString=myString.PadLeft(10,);
2)也可以添加指定的字符到字符串上,这需要一个char,如:
myString="Aligned";
myString=myString.PadLeft(10,'-'); //这将会在myString开头加上3个'-'.
7.<string>.Split()
1)可以把string转换为string数组,把它的指定的位置分隔开。这些位置采用char数组的形式。如:
string myString ="This is a test."
char[] separator={' '};
string[] myWords=myString.Split(separator);
notice:
在使用split()时,删除了分隔符。