• 与字符串有关的题目


    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));
  • 相关阅读:
    用大白话谈谈XSS与CSRF
    Lenet5设计理解——咬文嚼字系列
    【java设计模式】之 责任链(chain of resposibility)模式
    【java设计模式】之 代理(Proxy)模式
    【java设计模式】之 建造者(Builder)模式
    【java设计模式】之 模板方法(Template Method)模式
    【java设计模式】之 抽象工厂(Abstract Factory)模式
    【java设计模式】之 工厂(Factory)模式
    浅谈Arrays.asList()方法的使用
    分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
  • 原文地址:https://www.cnblogs.com/lcxBlog/p/4896332.html
Copyright © 2020-2023  润新知