using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace test1 { enum Gender { Male, Female, Unkown }; class Program { static void Main(string[] args) { //////////////////////////////////////// //Console.WriteLine("Hello"); //Console.WriteLine("请输入一串字符:"); //string s = Console.ReadLine(); //Console.WriteLine("您输入的字符串为:"+s); //Console.WriteLine("您输入的字符串为:{0}",s); //////////////////////////////////// //字符串的转义 //string s1 = @"c:\temp\file\1.jpg"; //string s1 = "c:\\temp\\file\\1.jpg"; //Console.WriteLine("{0}", s1); ////////////////////////////////////////////////// //Convert简单数据类型转换 //Convert.ToString() Convert.Toint32(); /*Console.WriteLine("请输入第一个整数:"); string s1 = Console.ReadLine(); Console.WriteLine("请输入第二个整数:"); string s2 = Console.ReadLine(); int i1 = Convert.ToInt32(s1); int i2 = Convert.ToInt32(s2); Console.WriteLine("{0}+{1}={2}", i1,i2,i1+i2);*/ /*Console.WriteLine("int最大值{0},最小值{1}",int.MaxValue, int.MinValue); Console.WriteLine("byte最大值{0},最小值{1}", byte.MaxValue, byte.MinValue); byte b = 3; int i1 = b; //显示式转换, 变量b转换后不能满足int类型变量i1的值,所以叫显示式转换,程序员自己负责 //隐式转换:当目标一定能满足原类型转换过去后的要求的话就是隐式转换 //显示转换:当目标不一定能满意足原类型转换过去的要求的话就需要显示转换(自己负责) b = (byte)i1; //隐藏转换 i1也就是int类型的,转换为byte类型的变量b,转换后是一定满足的,所以隐式转换*/ /////////////////////////////////////// //枚举 //enum Gender{ Male, Female, Unkown}; //Console.WriteLine(Gender.Male); //Console.WriteLine(Gender.Female); //Console.WriteLine(Gender.Unkown); /////////////////////////////////////// //数组 /*int[] nums = { 52,5,8}; int[] news = new int[3]; string[] str = new string[5]; Console.WriteLine("str.length:{0}",str.Length); for (int s = 0; s < str.Length; s++) { str[s] = Convert.ToString(s); } foreach (string name in str) { Console.WriteLine(name); }*/ //////////////////////////////////// //函数 /*int[] ages = {22,44,87,99,34}; double eman = AgeMean(ages); Console.WriteLine("平均年缺为:{0}", eman); hello();*/ /////////////////////////////////// //字符串基础 /*char a = 'a'; //单个字符 string str = "hello C#"; foreach (char c in str) { Console.Write(" {0} ", c); } //C#中字符串有一个重要的特性,不可变性,字符串一量声明就不再可以改变,所以只能通过索引来读取定位置的char,不能对指定位置的char进行修改 string s1 = "xlc"; s1 = "xxd"; //这里并没有改变s1这块内存空间,而是让s1重新指向了一块内存空间 Console.WriteLine("s1:{0}",s1); //要区分变量名和变量指向的值的区别,程序中可以有很多字符串,然后由字符串变量指向它们,变量可以指向其他的字符串,但字符串本身没有变化,字符串不可变性指的是内存中的字符串不可变,而不是变量不变*/ ////////////////////////////////////////// //string 常用函数 //ToLower(); 得到字符串的小写形式 /*string s = "HELLO"; s = s.ToLower(); Console.WriteLine(s); //ToUpper(); 得到字符串的大写形式 string s1 = "hello"; s1 = s1.ToUpper(); Console.WriteLine(s1); //去掉字符串两端的空白 string s2 = " 去掉字符串两端的空格 "; Console.WriteLine(s2); s2 = s2.Trim(); Console.WriteLine(s2);*/ //两个字符串进行比较,区分大小写 //string s1 = "zzz"; //string s2 = "bbb"; //bool b = s1.Equals(s2,StringComparison.Ordinal); //Console.WriteLine("{0}与{1}的比较结果为:{2}",s1,s2,b); //忽略大小写的比较 //bool b = s1.Equals(s2, StringComparison.OrdinalIgnoreCase); //Console.WriteLine("{0}与{1}的比较结果为:{2}",s1,s2,b); //两字符串进行比较 //如果相等返回0,如果原值大于被比较值返回比0大的值,如果被比较值大于原值返回比0小的值 //int i = s1.CompareTo(s2); //Console.WriteLine("{0}与{1}的比较结果为:{2}", s1, s2, i); //1 因为b比a大,而z也比b大 //字符串分割 /*string names = "aa,bb,cc,dd,ee,ff"; string[] name = names.Split(','); for (int i = 0; i < name.Length; i++) { Console.WriteLine("{0}:{1}",i,name[i]); }*/ /*string names = "aa,bb,cc)dd*ee|ff"; string[] name = names.Split(',',')','|','*'); for (int i = 0; i < name.Length; i++) { Console.WriteLine("{0}:{1}", i, name[i]); }*/ //去掉空的数据值 /*string name = "aa,bb,cc,dd,ee,ff,,ss,,,ff"; //string[] names = name.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries); string[] names = name.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries); foreach (string namei in names) { Console.WriteLine("我的名字叫:{0}",namei); }*/ //将字符串按照指定的string分割为字符串数组 /*string s = "我是刘邦我是关羽"; string[] ss = s.Split(new string[]{"我是"},StringSplitOptions.RemoveEmptyEntries); for (int i = 0; i < ss.Length; i++) { Console.WriteLine(ss[i]); }*/ //字符串替换 //string s = "我是小菊"; //s = s.Replace("小菊","向工"); //Console.WriteLine(s); //切取指定长度的字符串 //string title = "什么活就让他们干,自己孩子有什么客气的"; //string title_ = title.Substring(3,title.Length-3); //切中文也好使样 //Console.WriteLine(title_); //判断字符串中是否含有指定字符串 //string title = "什么活就让他们干,自己孩子有什么客气的"; //bool ii = title.Contains("他们干"); //Console.WriteLine(ii); //判断字符串是否以指定字符串开始 //string title = "什么活就让他们干,自己孩子有什么客气的"; //bool ii = title.StartsWith("什么"); //Console.WriteLine(ii); //判断字符串是否以指定字符串结束 //string title = "什么活就让他们干,自己孩子有什么客气的"; //bool ii = title.EndsWith("xxd"); //Console.WriteLine(ii); //切取value第一次出现的位置 /*string title = "什么活就让他们干,活自己孩子有什么客气的"; //int index = title.IndexOf("活"); int index = title.LastIndexOf("活");//最后一次出现 if (index >= 0) { title = title.Substring(index, title.Length-index); Console.WriteLine("第一次出现'活'后面的字符串为:{0}",title); }*/ //////////////////////////////////////////////// //ref out //ref 必须先初始化,因为是引用,所以必须先有,才能引用 //而out则是内部为外部赋值,所以不需要初始化 /*int i = 55; IncAge(ref i); Console.WriteLine("i:{0}",i); string name; nameOut(out name); Console.WriteLine("我的名字为:{0}",name);*/ } /*static void nameOut(out string name) { name = "xlc"; } static void IncAge(ref int age) { age += 5; }*/ /*static void hello(string name = "xlc", int age = 23) { Console.WriteLine("hello!欢迎您:{0},年龄为:{1}", name, age); } static double AgeMean(params int[] ages) { int count = 0; for(int s=0; s<ages.Length; s++){ count += ages[s]; } double age = count / ages.Length; return age; }*/ } }