zoukankan      html  css  js  c++  java
  • 字符串相关操作

     #region 字符串去除中文
            /// <summary>
            /// 字符串去除中文
            /// </summary>
            /// <returns></returns>
            public string HandleString()
            {
                var str = "123牛4逼5了";
                string retValue = str;
                if (System.Text.RegularExpressions.Regex.IsMatch(str, @"[u4e00-u9fa5]"))
                {
                    retValue = string.Empty;
                    var strsStrings = str.ToCharArray();
                    for (int index = 0; index < strsStrings.Length; index++)
                    {
                        if (strsStrings[index] >= 0x4e00 && strsStrings[index] <= 0x9fa5)
                        {
                            continue;
                        }
                        retValue += strsStrings[index];
                    }
                }
                return retValue;
            }
            #endregion
    
            #region 判断字符串是否是数字,只针对Int类型,double不行
            /// <summary>
            /// 判断字符串是否是数字,只针对Int类型,double不行
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            public static bool IsNumber(string s)
            {
                if (string.IsNullOrWhiteSpace(s)) return false;
                const string pattern = "^[0-9]*$";
                Regex rx = new Regex(pattern);
                return rx.IsMatch(s);
            }
            #endregion
    
            #region 判断字符串是否是 int或double
            /// <summary>
            /// 判断字符串是否是 int或double,为int或double时返回true
            /// 可用于界面上经纬度值判定
            /// </summary>
            /// <param name="strNumber"></param>
            /// <returns></returns>
            public static bool IsIntOrDouble(string strNumber)
            {
                Regex objNotNumberPattern = new Regex("[^0-9.-]");
                Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*");
                Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*");
                const string strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+$";
                const string strValidIntegerPattern = "^([-]|[0-9])[0-9]*$";
                Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")");
                return !objNotNumberPattern.IsMatch(strNumber) &&
                !objTwoDotPattern.IsMatch(strNumber) &&
                !objTwoMinusPattern.IsMatch(strNumber) &&
                objNumberPattern.IsMatch(strNumber);
            }
            #endregion
    
            #region 判断字符是不是汉字
            public bool JudgeChinese()
            {
                string text = "我去";
                bool res = false;
                #region 1、用ASCII码判断( 在 ASCII码表中,英文的范围是0-127,而汉字则是大于127,根据这个范围可以判断,具体代码如下:)
                foreach (char t in text)
                {
                    if ((int)t > 127)
                        res = true;
                } 
                #endregion
                #region 2、用汉字的 UNICODE 编码范围判断(汉字的 UNICODE 编码范围是4e00-9fbb,根据此范围也可 以判断,具体代码如下)
                foreach (char t in text)
                {
                    if (t >= 0x4e00 && t <= 0x9fbb)
                    {
                        res = true;
                        break;
                    }
                }
                #region 3、用正则表达式判断(用正则表达式判断也是根据汉字的 UNICODE 编码范围判断的,具体代码如下:)
                res = System.Text.RegularExpressions.Regex.IsMatch(text, @"[u4e00-u9fbb]+$");
                #endregion
                return res;
                #endregion
            }
            #endregion
    #region string的常用使用方法
            1---》字符串的声明:
    
      1string s = new string(char[] arr)     //根据一个字符数组声明字符串,即将字符字组转化为字符串。
    
      2string s = new string(char r, int i)    //生成 i 个字符 r 的字符串。
    
    2---》字符串常用的静态方法:
    
      1、Compare 字符串的比较(按照字典顺序)  
    
        int result = string.Compare(string str1, string str2);
    
            当str1 > str2时,返回1
    
            当str1 = str2时,返回0
    
            当str1<str2时,返回-1
    
    
            string.Compare(string str1, string str2, bool ignoreCase)   //忽略大小写比较
    
      2、Concat连接方法参数很多,常用的Concat(string str1,string str2);
    
            string str = string.Concat("w", "e"); //str="we";
    
      3、Format参数化处理,相当于Console.WriteLine();
    
        string str = String.Format("今天{0}很热", "天气");//str="今天天气很热";
    
      4、IsNullOrEmpty判断字符是否为null或者为空,返回值为bool;
    
        string str1 = "hahha";
    
            bool b1 = string.IsNullOrEmpty(str);//b1=false;
    
            string str2 = "";
    
            bool b2 = string.IsNullOrEmpty(str2);//b2=true;
    
            string str3 = null;
    
            bool b3 = string.IsNullOrEmpty(str3);//b3=true;
    
      5、Join字符串的合并
    
    string.Join(string str, string[] strArr);//将数组strArr中的内容拼接成一个新的字符串,并在对应数组的每两项间添加分隔符str
    
            string strs = string.Join(",", string[]{"w", "e", "r", "t"});//strs="w,e,r,t";
    
    3---》字符串常用的实例方法:
    
      1、Contains 判断字符串中是否包含某个字符, 返回bool值。
    
        string str = "好累呀";
    
        bool b = str.Contains("");//b=true;
    
      2、EndsWith和StartsWith 判断是否是已某种字符串开始或者结束
    
    
    string str = "好大的雨呀";
    
        bool b1 = str.StartsWith("");//b1=false;
    
        bool b2-str.EndsWith("");//b2=true;
    
      3、Equals 比较两个字符串是否相等
    
    
    string str1 = "asd";
    
        string str2 = "ert";
    
        bool b = str1.Equals(str2);  //b=false;
    
        bool <strName>.Equals(string str, StringComparison.OrdinalIgnoreCase)   //表示不区分大小写
    
       4、IndexOf 和 LastIndexOf 判断字符串第一次出现(IndexOf)和最后一次出现(LastIndexOf  )的位置,如果没有出现过则返回值为-1
    
        string str = "今天的雨很大,天很冷";
    
        int i = str.IndexOf(""); //i=4;
    
        int i = str.LastIndexOf("");//j=8;
    
        int m = str.IndexOf("");//m=-1;
    
       5、Replace 字符串(字符也是可以的)替换,返回新的字符串
    
    string str = "好困呀";
    
        string s = str.Replace("", "精神");//s="好精神呀";
    
       6、Insert 插入
    
    
    在字符串的index位置上插入字符,原来的字符依次后移,变成一个新的字符串
    
    string str = "夜深了";
    
        string s = str.Insert(1, "已经");//  s="夜已经深了"
       7、Remove删除字符串(字符)
    
        在字符串中移除从startIndex开始,长度为length的字符串,剩下的字符合为一个新的字符串(<strName> = <strName>.Remove(startIndex, length);)
    
        string str = "夜已经深了";
    
        string s = str.Remove(1, 2);//s="夜深了";
    
       8、Split 将字符串<strName>以sep数组中的字符分割,分割后得到的内容存到一个数组中(string[] <strName>.Split(params char[] sep);)
    
        string str = "我,真的、好困;呀";
    
        string[] s = str.Split(new char() { '', '', '' });//s=string[]{"我","真的","好困","呀"};
    
       9、Substring 截取字符<str>以index开始截取,并截取lenth个字符(string <str>.Substring(index, lenth))
    
    
    string str = "还在下雨";
    
        string s = str.Substring(2, 2);//s="下雨";
    
       10、ToCharArray将字符串转化为字符数组(<string>.ToCharArray())
    
         string str = "雨已经小了";
    
        char[] s = str.ToCharArray();//s=char[]{'雨',"已","经","小","了"};
    
       11、Trim() 出去两边的空格
    
      string str = "  dd  ";
    
        string s = str.Trim();//s="dd";
    
       12、ToUpper(转换为大写)和ToLower(转换为小写)
    
         string s = "RaSer";
    
        string s1 = s.ToUpper();//s1="RASER";
    
        string s2 = s.ToLower();//s2="raser";
        #endregion
  • 相关阅读:
    研究下线程投递
    IOCP笔记
    线程同步之mutex和Semaphore
    线程同步之mutex和event区别
    MyStack
    unix环境高级编程 读书笔记
    binary search tree study
    技术博客地址搜集
    select收数据
    奇怪的问题
  • 原文地址:https://www.cnblogs.com/macT/p/11390408.html
Copyright © 2011-2022 走看看