C#入门 枚举、结构、数组、字符串处理
枚举:
允许定义一个类型,其取值范围是用户提供的值的有限集合。
enum myWeekDay { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int i = 3; myWeekDay today = (myWeekDay)i;
枚举声明时,建议放在命名空间,当然,也可以放在类或结构中。将其它变量赋值给枚举类型时,需要强制转换,例如:today = (myWeekDay)myByte。
枚举是需要先声明的,然后再通过新建一个变量(today)为枚举类型来使用。枚举默认的基本类型值从0开始,递增1,这叫等差数列。
结构:
结构就是由几个数据组成的数据结构,这些数据可能具有不同类型。
定义结构:
使用 struct关键字定义结构
struct 结构名
{
结构的数据成员(使用public:让调用该结构的代码可以访问该结构的成员。)
}
数组:
需要存储多个且数据类型相同的值可以使用数组
声明数组:
string[] friendNames = new string [arrayCount];//只初始化数组大小,可选 常数 或 常量,初始化后,才可使用friendNames[0]的方式为数组元素赋值。
string[] friendNames = {"张三","李四","王五","谢六","陈七"};//直接声明数组,并且初始化了数组的内容。
可以使用foreach循环来遍历数组中的元素
foreach (string myStr in friendNames) { Console.WriteLine(myStr); }
多维数组:
多维数组分为矩形数组(多行的每行元素个数相同)、锯齿数组(多行的每行元素个数不同,并可能存在 {列1{行1{层1,层2},行2},列2...})
遍历多维数组中的元素可以通过嵌套foreach 循环来解决
字符串处理:
首先要注意,string类型的变量可以看做是char变量的只读数组。
可以通过myString[1]的方式访问字符串中的每个字符,第1个字符位是0:
String myString = " HeLlO WoRlD ";
char myChar = myString[1];
char myChar = myString[1];
使用ToCharArray(),可以获得一个可写的char数组:
还可以使用myString.Length获取字符串的数量,使用myString.ToLower()转为大写,myString.Trim()转为小写。
myString.Trim()可以去掉字符串前、后的空格,还有TrimStart()和TrimEnd(),分别去掉前面和后面的空格。还可以使用Trim(myChar[])的方式,指定去除前后的内容不限于空格(char[] myChar = {' ','s'}):
编写一个控制台应用程序,接收用户输入的字符串,将字符串的顺序以输入时相反的方向输出:
Console.WriteLine("请输入需要交换位置的字符串:"); String myString = Console.ReadLine().Trim(); Console.WriteLine("{0}", myString.Length); String tmpStr = ""; for (int i = myString.Length; i > 0; i--) { tmpStr += myString[i-1]; } Console.WriteLine(tmpStr);
编写一个控制台应用程序,接收用户输入的字符串,用yes替换字符串中的所有no:
Console.WriteLine("请输入带有no的字符串:");
myString = Console.ReadLine().ToLower().Trim();
Console.WriteLine("用 yes 替换掉 {0} 中的 no 后:{1}", myString, myString.Replace("no", "yes"));
编写一个控制台应用程序,给字符串的每个单词加上引号(我以为,单词间肯定有空格):
Console.WriteLine("请输入带有空格的单词:"); String myWord = Console.ReadLine().Trim(); String[] myWords = myWord.Split(' '); myWord = ""; foreach(String tmpWord in myWords) { myWord += "\"" + tmpWord + "\" "; } Console.WriteLine("添加引号后的句子:{0}", myWord);