当前位置:首页 > C#学习 > 正文内容

字符串的处理练习

小道7年前 (2018-08-20)C#学习3908

接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。

            Console.WriteLine("请输入一个字符串");//提示用户输入一个字符串。
            string s = Console.ReadLine();//接收用户输入的字符串。
            char[] c = s.ToCharArray();//将字符串的没个字符转换成单个字符,并赋值给c字符数组。
            for (int i = c.Length - 1; i >= 0; i--)//返序遍历c数组每个元素。
            {
                Console.Write(c[i]);//输出每个元素。
            }

输出结果:

image.png

接收用户输入的一句英文,将其中的单词以反序输出。"hello c sharp"→"sharp c hello"

            Console.WriteLine("请输入一个字符串");//提示用户输入一个字符串。
            string s1 = Console.ReadLine();//接收用户输入的字符串。
            string[] s2 = s1.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);//通过使用空格进行分割得到字符串中的每个单词。并赋值给s2数组。
            int i;//定义整型变量。未赋值。
            for (i = s2.Length - 1; i > 0; i--)//返序遍历数组每个元素。
            {
                Console.Write("{0} ", s2[i]);//输出除最后一个元素的元素+空格。
            }
            if (i == 0)//判断是不是最后一个元素。
            {
                Console.Write("{0}", s2[0]);//最后一个元素不加空格。
            }

输出结果:

image.png

从Email中提取出用户名和域名:123456789@126.com。IndexOf找到@的位置。

            string s = "123456789@126.com";//定义一个变量。
            int i = s.IndexOf("@");//通过IndexOf找到“@”的位置,并赋值给i。
            string s1 = s.Substring(0, i);//从第0个字符截取到i的字符,赋值给s1字符串。
            string s2 = s.Substring(i + 1);//从第i+1个字符截取到最后,并赋值给s2。
            Console.WriteLine("你的账户是:{0},你的邮箱域名是:{1}.", s1, s2);//输出结果。

输出结果:

image.png


文本文件中存储了多个文章标题、作者,标题和作者之间用若干空格(数量不定)隔开,每行一个,标题有的长有的短,输出到控制台的时候最多标题长度15,如果超过15,则截取长度7的子串并且最后添加“...”,加一个竖线后输出作者的名字。

image.png

            string[] lines = System.IO.File.ReadAllLines(@"F:\2.txt", Encoding.Default);//读取信息赋值给lines数组。
            foreach (string item in lines)//遍历lines数组。
            {
                string[] s = item.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);//通过空格分割每个元素。
                int i = s[0].Length;//定义一个整型变量,并将每个元素标题长度赋值给它。
                if (i > 7)//判断标题字符是否超过7个。
                {
                    string s2 = s[0].Substring(0, 7);//如果超过,则截取前7位字符。
                    Console.WriteLine("标题:{0}... | 作者:{1}", s2, s[1]);//输出结果。
                }
                else
                {
                    Console.WriteLine("标题:{0} | 作者:{1}", s[0], s[1]);//如果没超过,则不截取。
                }
            }

输出结果:

image.png

另一种写法:

            string[] lines = System.IO.File.ReadAllLines(@"F:\2.txt", Encoding.Default);//读取信息赋值给lines数组。
            foreach (string item in lines)//遍历lines数组。
            {
                string[] s = item.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);//通过空格分割每个元素。
                string 标题 = s[0];//将s[0]值赋给标题。
                string 作者 = s[1];//将s[1]值赋给作者。
                标题 = 标题.Substring(0, Math.Min(7, 标题.Length));//从第0个开始截取,到第7个或者标题最后一个,Math.Min(7, 标题.Length)意思是 截取7个或者标题最后一个字符的值。
                int i = 标题.Length;//获取标题的长度
                if (i >= 7)//判断标题是否大于或等于7,不严谨。。。如果标题刚好是7个字符,后面加上...
                {
                    Console.WriteLine("标题:{0}... | 作者:{1}", 标题, s[1]);//输出结果。
                }
                else
                {
                    Console.WriteLine("标题:{0} | 作者:{1}", 标题, s[1]);//输出结果。
                }
            }

输出结果:

image.png

扫描二维码推送至手机访问。

版权声明:本文由小道发布,如需转载请注明出处。

本文链接:https://daobk.com/post/31.html

分享给朋友:

“字符串的处理练习” 的相关文章

类型转换Cast和Convert

类型转换Cast和Convert

把源类型赋值给目标类型,两个类型不一致的时候会发生类型转换。a=b,b是源,a是目标。隐式转换、显式转换。当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换;如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显式转换(程序员自己负责)。比如:把中国人转换为人是隐式转换,把人转换为中国...

函数的ref、out参数

函数的ref、out参数

函数参数默认是值传递的,也就是“复制一份”ref必须先初始化,因为是引用,所以必须先“有”,才能引用,而out则是内部为外部赋值,所以不需要初始化,而且外部初始化也没用。ref应用场景内部对外部的值进行改变,out则是内部为外部变量赋值,out一般用在函数有多个返回值的场所。  ...

命名空间namespace

命名空间namespace

namespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。在代码中使用其他类的时候需要using类所在的namespace。System.Collections.ArrayList,快速引入的方法,右键→解析(Ctrl+.)。为什么使用Convert、Console等类不需要自己写...

简单的加法计算器

简单的加法计算器

简单的加法计算器,用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。int.TryParse、MessageBox.Show。        pri...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。