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