首页 > 代码库 > 字符串练习题

字符串练习题

            #region 练习一
            //课上练习1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"
            string str = "abcefg";
            //思路:先将这个字符串转换成数组
            char[] chs = str.ToCharArray();
            //对数组进行反序
            for (int i = 0; i < chs.Length / 2; i++)
            {
                char temp = chs[i];
                chs[i] = chs[chs.Length - 1 - i];
                chs[chs.Length - 1 - i] = temp;
            }
            //将数组转换成字符串
            str = new string(chs);
            Console.WriteLine(str);
            Console.ReadKey(); 
            #endregion


            #region 练习二
            //课上练习2:接收用户输入的一句英文,将其中的单词以反序输出。      “I love you"→“i evol uoy"
            string str = "I love you";
            //通过split获得每个单词,那么split返回的是一个数组
            string[] strNews = str.Split(new char[]{‘ ‘},StringSplitOptions.RemoveEmptyEntries);
           
            for (int i = 0; i < strNews.Length; i++)
            {
                //先将字符串转换成数组
                char[] chs = strNews[i].ToCharArray();
                //然后  将这个数组反转
                for (int j = 0; j <chs.Length/2; j++)
                {
                    char temp=chs[j];
                    chs[j]=chs[chs.Length-1-j];
                    chs[chs.Length - 1 - j] = temp;
                }
                strNews[i] = new string(chs);
            }
            str= string.Join(" ",strNews);
            Console.WriteLine(str);
            Console.ReadKey();
            #endregion


            #region 练习三
//课上练习3:”2012年12月21日”从日期字符串中把年月日分别取出来,打印到控制台 
            string date = "2012年12月21日";
            string[] dateNew= date.Split(new char[]{‘年‘,‘月‘,‘日‘},StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine(dateNew[0]);
            Console.WriteLine(dateNew[1]);
            Console.WriteLine(dateNew[2]);
            Console.ReadKey();
       #endregion


            #region 练习五
            //练习5:123-456---789-----123-2把类似的字符串中重复符号去掉,既得到123-456-789-123-2. split()、StringSplitOptions.RemoveEmptyEntries   Join()


            string str = "123-456---789-----123-2";
            string[] strNew = str.Split(new char[] { ‘-‘ }, StringSplitOptions.RemoveEmptyEntries);


            str = string.Join("-", strNew);
            Console.WriteLine(str);
            Console.ReadKey(); 
            #endregion


            #region 练习六
             //练习6:从文件路径中提取出文件名(包含后缀) 。比如从c:\a\b.txt中提取出b.txt这个文件名出来。以后还会学更简单的方式:“正则表达式”,项目中我们用微软提供的:Path.GetFileName();(更简单。)
            string path = @"c:\a\b\c\d\f\c#.avi";
            int index=path.LastIndexOf("\\");
            string fileName = path.Substring(index+1);
            Console.WriteLine(fileName);
            Console.ReadKey();
            
            #endregion


            //练习7:求员工工资文件中,员工的最高工资、最低工资、平均工资
            List<int> listSalary=new List<int>();
            //相对路径
            string[] lines = System.IO.File.ReadAllLines("1.txt",Encoding.Default);
            for (int i = 0; i < lines.Length; i++)
            {
                string[] linesNew = lines[i].Split(new char[]{‘,‘},StringSplitOptions.RemoveEmptyEntries);
                //将每个人的工资转换成整数添加到集合中
                listSalary.Add(Convert.ToInt32(linesNew[1]));
            }
            Console.WriteLine("最高工资是{0},最小工资是{1},平均是{2}",listSalary.Max(),listSalary.Min(),listSalary.Average());
            Console.ReadKey();

字符串练习题