c# 實現截串顯示省略號

/// <summary>
        /// 橫20文字×縦10行=200文字(最大)を表示する。
        /// </summary>
        /// <param name="inStr">入力文字</param>
        /// <param name="findStr">ハイライト文字</param>
        /// <param name="maxLength">最大表示文字數</param>
        /// <returns>省略符號を追加の結果</returns>
        public static string getSubString(string inStr, string findStr, int maxLength)
        {

//確認1234567890 ⇒    確認1234567...
            //12345確認67890 ⇒    12345確認67...
            //1234567890確認 ⇒    ...4567890確認
            //1確認234567890 ⇒    1確認234567...
            //123456789確認0 ⇒    ...3456789確認0

            int index = inStr.IndexOf(findStr);
            int start = index - maxLength / 2;
            int end = index + maxLength / 2;
            int inStrLength = inStr.Length;
            string outStr = "";
            try
            {
                if (maxLength >= inStrLength)
                {
                    outStr = inStr;
                }
                else if (start <= 0 && end < inStrLength)
                {
                    outStr = inStr.Substring(0, maxLength - 1) + STR_ELLIPSIS;
                }
                else if (start > 0 && end < inStrLength)
                {
                    outStr = STR_ELLIPSIS + inStr.Substring(start + 1, maxLength - 2) + STR_ELLIPSIS;
                }
                else if (start > 0 && end >= inStrLength)
                {
                    outStr = STR_ELLIPSIS + inStr.Substring(inStrLength - maxLength + 1);
                }
                else
                {
                    //if (intStrLength <= maxLength)
                    outStr = inStr;
                }
            }
            catch
            {
                outStr = inStr;
            }
            return outStr;

        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章