文章出處

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));

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()