与字符串有关的题目

1、统计某种字符串中某个字符或某个字符串出现的次数,以及每次出现的索引位置

有如下字符串:【"患者:“大夫,我咳嗽得很重。”
* 大夫:“你多大年记?” 患者:“七十五岁。”
* 大夫:“二十岁咳嗽吗”患者:“不咳嗽。”
* 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。”
* 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。
* 需求:请统计出该字符中“咳嗽”二字的出现次数,
* 以及每次“咳嗽”出现的索引位置。*/

        static void GetCough(string str)
        {
            int n = 0;
            int nStartIndex = 0;
            while (true)
            {
                int index = str.IndexOf("咳嗽", nStartIndex);
                if (-1 == index)
                {
                    break;
                }
                else
                {
                    n++;
                    nStartIndex = index + 2;
                    Console.WriteLine("第{0}次咳嗽出现的位置是{1}",n,index);
                }
            }
        }

2、去掉空格,替换空格类型

  一般调用string的Trim方法去掉字符串前面和后面两边的空格,去掉前面的空格用TrimStart,去掉后面的空格用TrimEnd。

  将字符串中间的空格去掉可以先用Split将字符串分割成若干个子串,再用Join将这些子串连接成一个字符串。

       /*20.    将字符串"  hello      world,你  好 世界   !    "两端空格去掉,
         * 并且将其中的所有其他空格都替换成一个空格,
         * 输出结果为:"hello world,你 好 世界 !"。   */
        static void Main(string[] args)
        {
            string str = "  hello      world,你  好 世界   !    ";
            Console.WriteLine("输出结果: {0}", DealString(str));
            Console.ReadKey();
        }

        static string DealString(string strSrc) 
        {
            string strDesc = strSrc.Trim();
            string[] strs = strDesc.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);
            string strRes = string.Join(" ",strs);
            return strRes;
        }

        //程序运行的过程中会产生无用的string,占据内存。
        //static string DealString(string strSrc)
        //{
        //    string strDesc = strSrc.Trim();
        //    for (int i = 0; i < strDesc.Length - 1;)
        //    {   //遇到连续空格的话,就删掉前面一个
        //        if (strDesc[i] == ' ' && strDesc[i+1] == ' ')
        //        {
        //            strDesc = strDesc.Remove(i, 1);
        //        }
        //        else
        //        {
        //            i++;
        //        }
        //    }
        //    return strDesc;
        //}

3、将字符串反转

  先将字符串转换为字符数组,然后将字符数组进行反转,最后将字符数组转换为字符串。

            /*1:接收用户输入的字符串,将其中的字符以与输入相反的顺序输出。"abc"→"cba"*/
            string str = Console.ReadLine();
            //直接这样做是不能输出反转后的字符串的
            //Console.WriteLine(str.Reverse());
            //Reverse() 方法是用于操作数组的,所以我们可以先将字符串转换为字符数组,然后将字符数组进行反转
            char[] chars = str.ToCharArray();
            Array.Reverse(chars);
            Console.WriteLine("{0}反转后得到:{1}", str, new string(chars));
            Console.WriteLine("调用自己写的Reverse1方法:{0}", Reverse1(str));
            Console.WriteLine("调用自己写的Reverse2方法:{0}", Reverse2(str));

 

转载于:https://www.cnblogs.com/lcxBlog/p/4896332.html

1. 声明两个变量:int n1 = 10, n2 = 20;要求将两个变量交换,最后输出n1为20,n2为10。扩展(*):不使用第三个变量如何交换? 2. 用方法来实现:将上题封装一个方法来做,方法有两个参数分别为num1,num2,将num1与num2交换。提示:方法有两个参数n1,n2,在方法中将n1与n2进行交换,使用ref。(*) 3. 请用户输入一个字符串,计算字符串中的字符个数,并输出。 4. 用方法来实现:计算两个数的最大值。思考:方法的参数?返回值?扩展(*):计算任意多个数间的最大值(提示:使用可变参数,params)。 5. 用方法来实现:计算1-100之间的所有整数的和。 6. 用方法来实现:计算1-100之间的所有奇数的和。 7. 用方法来实现:判断一个给定的整数是否为“质数”。 8. 用方法来实现:计算1-100之间的所有质数(素数)的和。 9. 用方法来实现:有一个整数数组:{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 },找出其中最大值,并输出。不能调用数组的Max()方法。 10. 用方法来实现:有一个字符串数组:{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。 11. 用方法来实现:请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }。要求:计算结果如果有小数,则显示小数点后两位(四舍五入)。Math.Round() 12. 请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }实现升序排序。 13. 有如下字符串:【"患者:“大夫,我咳嗽得很重。” 大夫:“你多大年记?” 患者:“七十五岁。” 大夫:“二十岁咳嗽吗”患者:“不咳嗽。” 大夫:“四十岁时咳嗽吗?” 患者:“也不咳嗽。” 大夫:“那现在不咳嗽,还要等到什么时咳嗽?”"】。需求:①请统计出该字符中“咳嗽”二字的出现次数,以及每次“咳嗽”出现的索引位置。②扩展(*):统计出每个字符的出现次数。 14. 将字符串" hello world,你 好 世界 ! "两端空格去掉,并且将其中的所有其他空格都替换成一个空格,输出结果为:"hello world,你 好 世界 !"。 15. 制作一个控制台小程序。要求:用户可以在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数,以及每个学生的姓名。效果如图:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>