获得大写首字母

    试用场景:联系人分组,文字简拼等。

    在执行Encoding.GETEncoding("GBK")方法时,安卓版会出现如下错误信息(IOS一般不会出现):


  解决方式:右键安卓项目,选择“属性”按钮,在“Android选项”栏目中选择“CJK”后保存,清理项目并重新运行即可。



 /// <summary>
        /// 返回给定字符串的首字母
        /// </summary>
        /// <param name="IndexTxt"></param>
        /// <returns></returns>
        public static string GetStringSpell(String IndexTxt)
        {
            String _Temp = "-";
            for (int i = 0; i < IndexTxt.Length; i++)
            {
                string _Str = GetOneIndex(IndexTxt.Substring(i, 1));

                Regex regEnglish = new Regex("^[0-9a-zA-Z]");
                if (regEnglish.IsMatch(_Str))
                {
                    _Temp = _Str;
                    break;
                }

            }

            return _Temp.ToUpper();
        }

        /// <summary>
        /// 得到单个字符的首字母
        /// </summary>
        /// <param name="OneIndexTxt"></param>
        /// <returns></returns>
        public static string GetOneIndex(String OneIndexTxt)
        {
            try
            {
                if (Convert.ToChar(OneIndexTxt) >= 0 && Convert.ToChar(OneIndexTxt) < 256)
                {
                    return OneIndexTxt;
                }

                else
                {
                    Encoding gbk = Encoding.GetEncoding("GBK");
                    byte[] unicodeBytes = Encoding.Unicode.GetBytes(OneIndexTxt);
                    byte[] gbkBytes = Encoding.Convert(Encoding.Unicode, gbk, unicodeBytes);
                    return GetX(Convert.ToInt32(String.Format("{0:D2}", Convert.ToInt16(gbkBytes[0]) - 160) + String.Format("{0:D2}", Convert.ToInt16(gbkBytes[1]) - 160)));
                }
            }
            catch(Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return "";

        }

猜你喜欢

转载自blog.csdn.net/m0_37698386/article/details/79915783