1、
class Program { // 用户输入一个“2008-01-02”格式的日期,分析用户输入的日期然后按照“2008年1月2日”的格式重新输出。 static void Main(string[] args) { Console.WriteLine("请输入一个格式如xxxx-xx-xx的日期,例如:2008-01-02"); //提示用户输入一个指定格式的日期 string s = Console.ReadLine(); //获取用户输入的日期,赋值给s string[] a = s.Split('-'); //以-为分割点,分割字符串s。并赋值给a Console.WriteLine("{0}年{1}月{2}日",a[0],a[1],a[2]); //输出日期 Console.ReadKey(); } }
重点①: string []str =s.Split('_');
Split
1. Split在上面情况下用单个字符的分隔,分隔符为‘—’,分隔后存放在字符串数组a中。
2. 用于多个字符分隔:
例如:string str=“qqqqjaaaabcccc”;
string [] strs=str.Split(new char[]{‘j‘,’b’});
foreach(string i in strs)
Console.WriteLine(i.ToString());
输出结果:
qqqq
aaaa
cccc
3.用字符串分隔:
string str="aaajsbbbjsccc";
string [] strs=Regex.Split(str,“js”,RegexOptions.ignoreCase});
foreach(string i in strs)
Console.WriteLine(i.ToString());
输出结果
aaa
bbb
ccc
重点②:
Console.WriteLine("{0}年{1}月{2}日",a[0],a[1],a[2]); //输出日期
上面代码中的:{0}年{1}月{2}日",a[0],a[1],a[2];{}为占位符,和",a[0],a[1],a[2]是对应的;通俗点就是挖坑填坑。
2、分别让用户输入用户名和密码,如果用户名不为admin,则提示“用户名不存在”,如果用户名为admin,密码为88888888,则提示“登录成功”,否则提示“密码错误”。
static void Main(string[] args) { //提示用户输入用户名 Console.WriteLine("请输入用户名:"); //用户输入的字符串赋值给useName string userName = Console.ReadLine(); //提示用户输入密码 Console.WriteLine("请输入密 码:"); //用户输入的字符串赋值给pwd string pwd = Console.ReadLine(); //用if语句判断用户输入的用户名是否等于admin并且密码等于88888888,如果等于执行下条语句,否则进入else if (userName == "admin" && pwd == "88888888") { //提示登录成功 Console.WriteLine("登陆成功"); } else { //判断用户名是否等于admin,如果等于执行下条语句,否则进入else if (userName != "admin") { //提示用户名不存在 Console.WriteLine("用户名不存在"); } else //提示密码错误 Console.WriteLine("密码错误"); } } }
3、求1-100之间的偶数和
static void Main(string[] args) { //定义变量sun,i,并把0赋值给sum int sum = 0, i ; //用for循环进行1到100偶数加法运算,赋i的值为0,i小于等于100为循环条件,每次循环后i加2; for (i = 0; i <= 100; i = i + 2) { //把sum和i相加,并赋给sum, sum = sum+i; } Console.WriteLine("1-100之间的偶数和为:{0}",sum); Console.ReadKey(); } }
4、定义两个变量如:a b分别赋值为10和5,写程序交换两个变量的值
class Program { //定义两个变量如:a b分别赋值为10和5,写程序交换两个变量的值 static void Main(string[] args) { //定义两个变量a b分别赋值为10和5,定义变量c,用于临时存放b的值 int a = 10, b = 5,c; //b的值赋值给变量c c = b; //a的值赋值给变量b b = a; //把c中存放原b的值赋值给变量a a = c; //输出a,b交换过后的值 Console.WriteLine("a={0},b={1}",a,b); Console.ReadKey(); } }
注意:两个变量交换值时要定义一个中间变量,用于临时存放其中一个值。以完成两个值交换
5、用控制台程序输出九九乘法表;输出结果按下图所示
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9
代码如下:
static void Main(string[] args) { //定义两个变量i,j用于计算及控制循环 int i, j; //初始化i=1,用来控制列数,当i小于9时执行for循环,后i加1 for (i = 1; i <= 9; i++) { //初始化j=1,用来控制行数,当j不大于i时执行for循环,后i加1 for (j = 1; j <= i; j++) { //输出结果 Console.Write("\t{0}*{1}={2}", j, i, i * j); } //执行一个内循环换行一次 Console.WriteLine(); } //防止输出的结果一闪而过 Console.ReadKey(); }
注意:用两个for循环分别控制行和列,其中“\t”也相当于占位符,相当于空格
6、接收用户输入的一句英文,将其中的单词以反序输出。 例如:“I love you”→“i evol uoy”
static void Main(string[] args) { //提示用户输入一句英文 Console.WriteLine("请输入一句英文"); //把用户输入的英文放在strs中 string strs= Console.ReadLine(); //Split分割字符串,并把分割后的字符串赋给str string[] str= strs.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); //定义字符串newstrs用来放反序字符串 string newstrs = ""; //用于控制每个str[]每个值都可以执行for语句 for (int i = 0; i < str.Length; i++) { // 将字符串str[i]拆分为字符到数组chs char[] chs = str[i].ToCharArray(); //将chs倒序 Array.Reverse(chs); //倒序后的chs重新赋值给str[i] str[i] = new string(chs); //将str[i]和空格连接得到字符串newstrs newstrs += str[i] + " "; } //输出反序后的字符串 Console.WriteLine(newstrs.Trim()); Console.ReadKey(); }
重点③:
string[] str= strs.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);红色区域可以去掉分隔后产生的空白项
绿色表示以空格为分隔符分隔字符串,把分隔的字符串放在字符串数组str里
重点④:
Array.Reverse(chs); 把反转一维字符数组cha的顺序
如果cha[]a={'0','1','2'};
Array.Reverse(a);后char []a={'2','1','0'}
newstrs += str[i] + " "; //将str[i]和空格连接得到字符串newstrs
7、c#时间格式转换汉字大写 比如: “2011年6月4日” 转换成 “二零一一年六月四日”
代码如下:
static void Main(string[] args) { //提示用户输入指定格式的日期 Console.WriteLine("请输入一个xxxx年x月x日,例如:2011年6月4日"); //用户输入的字符串放在定义的字符串date中 string date = Console.ReadLine(); //定义字符串newDate并初始化为空,用于存放转换后的日期 string newDate = ""; //把字符串date拆成数组放在数组cha中 char[] cha = date.ToCharArray(); //此循环用于转换每个cha中的字符 for (int i = 0; i < cha.Length; i++) { switch (cha[i]) { //case为switch的入口,当cha[i]为‘0’时,进入下一步执行赋值语句 case '0': cha[i] = '零'; //跳出循环 break; case '1': cha[i] = '壹'; break; case '2': cha[i] = '贰'; break; case '3': cha[i] = '叁'; break; case '4': cha[i] = '肆'; break; case '5': cha[i] = '伍'; break; case '6': cha[i] = '陆'; break; case '7': cha[i] = '柒'; break; case '8': cha[i] = '捌'; break; case '9': cha[i] = '玖'; break; //当cha[i]非以上所有情况时,执行defule语句,跳出循环 default: break; } //跳出循环后执行把cha[i]连接到newDate,生成新的字符串,进入for循环 newDate += cha[i]; } //输出转换后的日期 Console.WriteLine("{0}转换后为:{1}", date, newDate); Console.ReadKey(); } }
重点⑤:
char[] cha = date.ToCharArray()
ToCharArray作用:将字符串date拆分为字符到数组cha。
8、通过循环找出下面字符串“fjasdfefvadsjfioefjdsaijefesdfaee”中E字符的位置并输出
static void Main(string[] args) { //定义并初始化字符串str string str = "fjasdfefvadsjfioefjdsaijefesdfaee"; //定义并转换为初始化变量j,i int j = 0, i = 0; //把字符串str转换为字符数组cha char[] cha = str.ToCharArray(); //用foreach循环语句遍历cha foreach (char item in cha) { //用i计算e出现的位置 i++; //判断cha是否为e if (item == 'e') { //如果cha[i]=='e',输出其位置,j用来计算是第几个e Console.WriteLine("第{0}个e的位子在第:{1}位", ++j, i); } } Console.ReadKey(); }
9、
班级学生总成绩和平均成绩计算:1)让用户输入班级人数 2)让用户依次输入该班级每个学员的姓名和成绩(0-100之间)
3)按成绩进行排序,按成绩由高到低依次输出学生的姓名和成绩
static void Main(string[] args) { //提示用户输入班级人数 Console.WriteLine("请输入班级人数:"); //定义变量i,和定义num—用于存放班级人数 int i, num = Convert.ToInt32(Console.ReadLine()); //定义并初始化浮点数值类型的数组sco,用于存放学生的分数 double[] sco = new double[num]; //定义并初始化字符串数组name,用于存放学生姓名 string[] name = new string[num]; //用for循环输入学生姓名和分数 for (i = 0; i < num; i++) { Console.WriteLine("请输入学生姓名:"); name[i] = Console.ReadLine(); Console.WriteLine("请输入分数:"); sco[i] = Convert.ToInt32(Console.ReadLine()); } //两个一维数组根据第一个参数sco从小到大进行排序,索引项name也会匹配 Array.Sort(sco, name); //用for循环反序输出排序后的姓名和分数 for (int t = num - 1; t >= 0; t--) { Console.WriteLine("姓名:{0},分数{1}", name[t], sco[t]); } Console.ReadKey(); }
重点⑥: