C#string常用函数总结

补充:吐舌鬼脸

            1:在C语言里 char占1个字节 而在C#,Java里char占两个字节 数据库里char 中汉占两个字节 字母数字占一个字

            2:string是c#中的类,String是.net Framework的类 string是关键字,也就是说string不能作为类、结构、枚举、字段、变量、方法、属性的名称,而String可以

一:  string是引用类型

但是当一个string类型的参数赋值给另一个参数时,只给了值,而不是地址,因为它保留在堆上,而不是堆栈上

namespace Stringop
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "lipeng";
            string str2 = str1;

            Console.WriteLine("str1=" + str1);
            Console.WriteLine("str2=" + str2);

            str1 = "newlipeng";

            Console.WriteLine("str1=" + str1);
            Console.WriteLine("str2=" + str2);

        }

    }
}

二:常用函数

1.all

//all函数   
            //确定序列中的所有元素是否满足条件。
            bool isSure = str1.All(p => p > 'b');

            Console.WriteLine(isSure);

2.CompareTo

//CompareTo  
            //返回一个值,该值指示指定的 System.String 对象是否出现在此字符串中。
            // 一个 32 位有符号整数,该整数指示此实例在排序顺序中是位于 value 参数之前、之后还是与其出现在同一位置。值条件小于零此实例位于 str2
            //     之前。零此实例在排序顺序中的位置与 str2 相同。大于零此实例位于 str2 之后。- 或 -str2 为 null。
            str2 = "newlipenaa";
            int lp = str1.CompareTo(str2);

            Console.WriteLine(lp);

3.Contains

//Contains 
            //返回一个值,该值指示指定的 System.String 对象是否出现在此字符串中。
            bool isContain = str1.Contains("a");

            Console.WriteLine(isContain);

4.Count

//Count
            //返回一个数字,表示在指定的序列中满足条件的元素数量。
            int count = str1.Count(p => p == 'e' || p == 'l');

            Console.WriteLine(count);

5.IndexOf

//IndexOf 
            //报告指定 Unicode 字符在此字符串中的第一个匹配项的索引。
            int index = str1.IndexOf('a');

            Console.WriteLine(index);

            string strs = str1.Substring(1, 3);

            Console.WriteLine(strs);

6.Split

//Split  
            //返回的字符串数组包含此实例中的子字符串(由指定 Unicode 字符数组的元素分隔)。
            string[] lsStr = str1.Split(new char[] { ',', 'e' });

            foreach (string a in lsStr)
            {
                Console.WriteLine(a);
            }

7.Trim 和TrimEnd

//Trim     
            //从当前 System.String 对象移除所有前导空白字符和尾部空白字符。
            //TrimEnd     
            //从当前 System.String 对象移除数组中指定的一组字符的所有尾部匹配项。
            string strspace = "   aaa  s";

            Console.WriteLine(strspace);
            Console.WriteLine(strspace.Trim());
            Console.WriteLine(strspace.TrimEnd('s'));

8.PadLeft

//PadLeft 
            //返回一个新字符串,该字符串通过在此实例中的字符左侧填充指定的 Unicode 字符来达到指定的总长度,从而使这些字符右对齐。
            string padstr = str1.PadLeft(20, 'a');

            Console.WriteLine(padstr);

9.Replace

//Replace     
            //返回一个新字符串,其中此实例中出现的所有指定 Unicode 字符都替换为另一个指定的 Unicode 字符。
            string replacestr = str1.Replace('a', 'h');

            Console.WriteLine(replacestr);

10.Equals

//Equals    
            //确定此实例是否与另一个指定的 System.String 对象具有相同的值。
            bool isequal = str1.Equals(replacestr);

            Console.WriteLine(isequal);

11.ToUpper

           //ToUpper   
           //返回此字符串转换为大写形式的副本。
            string upstr1 = str1.ToUpper();

           Console.WriteLine(upstr1);
 

三:可变字符串StringBuilder

      StringBuilder建立的对象可操作性更强:

       经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, 那速度是一定会相当慢的。而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuilder对象本身进行操作,而不是生成新的对象,再改变对象引用。所以在一般情况下推荐使用 StringBuilder,特别是字符串对象经常改变的情况下。

           简单例子

             StringBuilder sber = new StringBuilder();
            //最加字符串  ouput:  lipeng,aaa,bbb
            sber.Append("lipeng,aaa,bbb");

            Console.WriteLine(sber);

            //移除li  ouput:  peng,aaa,bbb
            sber.Remove(0, 2);

            Console.WriteLine(sber);

            //获取长度   ouput:12
            int sberlength = sber.Length;

            Console.WriteLine(sberlength);

            //转化为string类型时就具有了string类型的方法
             string lps = sber.ToString().Trim();

四:其他知识点

string类型的count和length结果是一样的 是string中char类型的个数  而string数组只能用一个计数器来记录个数 

posted @ 2015-03-15 15:19  李_鹏  阅读(2468)  评论(0编辑  收藏  举报