C#轉換駝峰格式--首字母大寫,可直接ctrl+v,支持跳過字符串


C#轉換駝峰格式--首字母大寫,可直接ctrl+v,支持跳過字符串

輸入:2D_3D_23d_IB_REQUEST_OBSTACLES_GET_STATIC_OBJECTS_1_MESSAGE_STRUCT_SIZE_2D

結果:2D3D23dIBRequestObstaclesGetStaticO

環境 VS 2017

鏈接: https://pan.baidu.com/s/1nJ5bxynMhk9re6_8F-eFaA 提取碼: wssy 

QQ交流:1023360745

 

        /////Readme
        /// <summary>
        /// 分隔符
        /// </summary>
        char charSplit = '_';
        //正則表達式在下面 其他格式自己調整一下

        private void button1_Click(object sender, EventArgs e)
        {
            string strConvert = textBox1.Text.Trim();

            //循環轉換 並拼裝字符串
            string strRes = PieceString(strConvert);

            //復制 直接粘貼即可
            Clipboard.SetDataObject(strRes);
            
            textBox2.Text = strRes;
            //清空輸入方便快速操作
            textBox1.Text = string.Empty;
        }

        /// <summary>
        /// 跳過的字符串
        /// </summary>
        private List<string> listPass = new List<string>();
        public void LoadPass()
        {
            string str = textBox3.Text.Trim();
            if (!string.IsNullOrWhiteSpace(str))
            {
                listPass = str.Split(',').ToList();
            }
        }

        /// <summary>
        /// 小寫轉換為駝峰
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private string ConvertString(string tb1)
        {
            Match mt = Regex.Match(tb1, @"_(\w*)*");
            while (mt.Success)
            {
                var item = mt.Value;
                if (!string.IsNullOrWhiteSpace(item))
                {
                    if (listPass.Contains(item.ToLower()))
                    {
                        continue;
                    }
                }
                while (item.IndexOf('_') >= 0)
                {
                    string newUpper = item.Substring(item.IndexOf(charSplit), 2);
                    item = item.Replace(newUpper, newUpper.Trim(charSplit).ToUpper());
                    tb1 = tb1.Replace(newUpper, newUpper.Trim(charSplit).ToUpper());
                }
                mt = mt.NextMatch();
            }

            return tb1;
        }

        /// <summary>
        /// 字符拼裝
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string PieceString(string str)
        {
            StringBuilder strRes = new StringBuilder();
            LoadPass();
            if (!string.IsNullOrWhiteSpace(str))
            {
                List<string> strList = str.Split(charSplit).ToList();
                foreach (var item in strList)
                {
                    if (listPass.Contains(item))
                    {
                        strRes.Append(item);
                    }
                    else
                    {
                        strRes.Append(ConvertString(charSplit + item.ToLower()));
                    }
                }
            }
            return strRes.ToString();
        }

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM