===============================字符串基本操作================================
  一、C#中字符串的建立过程
    例如定义变量

    strT="Welcome to ";
    strT+="www.cuit.edu.cn";
    程序首先创建一个System.String 类型的对象并初始化为“Welcome
to”。此时编译程度会分配足够的内存来保存这个文本串。并用变量strT来表示这个实例。当执行strT+="www.cuit.edu.cn"时,系
统会创建一个新的实例,并分配足够的内存来保存复合后的文本。然后用变量strT来表示这个新的字符串,旧的字符串被撤消。

  二、字符串处理

    1、从字符串中提取子串 
    StringBuilder 类没有支持子串的方法,因此必须用String类来提取。(关于StringBuilder 类,文末会提到)
    string mystring="My name is ynn."; 
    //Displays "name is ynn." 
    Console.WriteLine(mystring.Substring( 3 )); 
    //Displays "ynn" 
    Console.WriteLine(mystring.Substring( 11,3 ));

    2、比较字符串 
    String 类有四种方法:Compare( )、CompareTo( )、CompareOrdinal( )、Equals( )。 
    Compare( )方法是CompareTo( )方法的静态版本。只要使用“=”运算符,就会调用Equals( )方法,的以Equals( )方法与“=”是等价的。CompareOrdinal( )方法对两个字符串比较不考本地语言与文件。 
    示例: 
    int result; 
    bool bresult; 
    s1="aaaa"; 
    s2="bbbb"; 
    //Compare( )method 
    //result值为“0”表示等,小于零表示 s1 < s2,大于零表示 s1 > s2 
    result=String.Compare(s1,s2); 
    result=s1.CompareTo( s2 ); 
    result=String.CompareOrdinal(s1,s2);

    3.插入子串
    字符串.Insert(插入位置,插入子串) ;
    s.Insert(2,"ab");
    4.移出子串
    字符串.Remove(起始位置,移出数);
    s.Remove(3,2);
    5.替换子串
    字符串.Replace(源子串,替换为);
    s.Replace("-"," ");将-替换为空格
    6.截取子串
    字符串.Substring(截取起始位置,截取个数);
    "abcdef".Substring(2,3);结果为cde

    7.去空格
      myString.Trim(); //同时删除字符串前后的空格
    string userResponse = Console.ReadLine();
    userResponse = userResponse.Trim();//用该命令处理后产生新地变量再赋给此变量:
    if (userResponse.ToLower() == “yes”)
        Console.WriteLine(”OK!”);
    else
        Console .WriteLine (”NO!”);
    myString = myString.Trim(trimChars); //删除所有指定字符
    myString = myString.TrimEnd(); //删除字符串后的空格
    myString = myString.TrimStart(); //删除字符串前的空格

    8.转换大小写
    str.ToLower()转化成小写字母
    str.ToUpper()转化成大写字母
    Char.IsUpper(str,3)//判断一个字符串中的第n个字符是否是大写

    9.拆分字符串
    例1:string[] Strs = myString.Split(' ',3);

//按照空格进行拆分,并且返回前三个字符串,结果在字符串数组里

    例2:Split命令作用是用指定的分隔符分隔字符串,成为子字符串,子字符串赋给数组,作为元素输出

   string myStr = "this is a test.";
            char[] separator ={ ' ' };//'a' a为分隔符,此例为空格分隔符定义一个分隔符数组
            string[] mywords;
            mywords = myStr.Split(separator);
            foreach (string word in mywords)
            {
                Console.WriteLine("{0}", word);
            }
            Console.ReadLine();

  
    10.使字串达到指定长度
    PadLeft()、PadRight() ,如:
    例1:string str1="00";
    str1=str1.PadLeft(3,'1'); //无第二参数为加空格,结果为"100"
      //为字符串添加空格,都是从左向右数字符串的长度进行添加 空格
    例2:

    char[] trimChars ={ ' ', 'e', 's' };//命名一个要被删除的字符的数组
                //Console.WriteLine("{0},{1},{2}", trimChars[0],trimChars[1],trimChars[2]);
                string userResponse = Console.ReadLine();
                userResponse = userResponse.ToLower();
                userResponse = userResponse.Trim(trimChars);
                if (userResponse == "y")
                {
                    Console.WriteLine(".Trim()命令可以删除字符"yes"删除es后变为:{0}", userResponse);
                }
                Console.ReadLine();

    11.得到字符串长度
      len=str.Length;
    12.查找子串
    字符串.IndexOf(子串,查找起始位置) ;
    字符串.LastIndexOf(子串) ;最后一次出现的位置
    str.IndexOf("ab",0);
    13.字符串遍历
    string myString = "This is a test!";
    foreach (char myChar in myString)
    {
        Console.Write("{0}",myChar);
    }

==============================string类&char类==================================

    //string类型变量可以看作char变量的只读数组的使用
    string myString = “A string”;

    //使用数组变量的ToCharArray()命令将string变量myString变量的字符串值赋给
    //char类型的数组myChar为元素
    char[] myChars = myString.ToCharArray();
    //ToCharArray()命令把字符串值转换成char数组元素
    foreach (char myChar in myChars)//读取数组元素
    {
        Console.WriteLine(”{0}”,myChar);//或(myChar)
    }

    //string类型变量可以看作char变量的只读数组的使用
    Console.WriteLine(”请输入要转换的字符串,把其转换为char数组元素”);
    string myString = Console.ReadLine();//从屏幕得到字符串
    Console.WriteLine(”你输入的字符串长度为:{0}”,myString .Length );//获取字符串的长度
    //使用数组变量的ToCharArray()命令将string变量myString变量的字符串值赋给
    //char类型的数组myChar为元素
    char[] myChars = myString.ToCharArray();//ToCharArray()命令把字符串值转换成char数组元素
    foreach (char myChar in myChars)//读取数组元素
    {
        Console.WriteLine(”{0}”,myChar);//或(myChar)
    }

===============================字符串格式化================================

  3.1 格式化数字

    ----------------------------------------------------------------------------
    格式字符    说明和关联属性 
    c、C       货币格式。 
    d、D       十进制格式。 
    e、E       科学计数(指数)格式。 
    f、F       固定点格式。 
    g、G       常规格式。 
    n、N       数字格式。 
    r、R       往返格式,确保将已转换成字符串的数字转换回数字时具有与原数字相同的值。 
    x、X       十六进制格式。

    ----------------------------------------------------------------------------

    double val=Math.PI; 
    Console.WriteLine(val.ToString( ));  //displays 3.14159265358979 
    Console.WriteLine(val.ToString("E"));//displays 3.141593E+000 
    Console.WriteLine(val.ToString("F3");//displays 3.142

    int val=65535; 
    Console.WriteLine(val.ToString("x"));  //displays ffff 
    Console.WriteLine(val.ToString("X"));  //displays FFFF

    Single val=0.123F; 
    Console.WriteLine(val.ToString("p"));  //displays 12.30 % 
    Console.WriteLine(val.ToString("p1"));  //displays 12.3 %

  默认格式化会在数字和百分号之间放入一个空格。定制方法如下: 
  其中NumberFormatInfo类是System.Globalization命名空间的一个成员,因此该命名空间必须导入到程序中。 
    Single val=0.123F; 
    object myobj=NumberFormatInfo.CurrentInfo.Clone( ) as NumberFormatInfo; 
    NumberFormatInfo myformat=myobj as NumberFormatInfo; 
    myformat.PercentPositivePattern=1; 
    Console.WriteLine(val.ToString("p",myformat)); //displays 12.30%; 
    Console.WriteLine(val.ToString("p1",myformat)); //displays 12.3%;

  格式化具有很大的灵活性。下面的例子演示一个没有意义的货币结构: 
    double val=1234567.89; 
    int [] groupsize={2,1,3}; 
    object myobj=NumberFormatInfo.CurrentInfo.Clone( ); 
    NumberFormatInfo mycurrency=myobj as NumberFormatInfo; 
    mycurrency.CurrencySymbol="#"; //符号 
    mycurrency.CurrencyDecimalSeparator=":"; //小数点 
    mycurrency.CurrencyGroupSeparator="_";  //分隔符 
    mycurrency.CurrencyGroupSizes=groupsize; 
    // 输出 #1_234_5_67:89 
    Console.WriteLine(val.ToString("C",mycurrency));

  3.2 格式化日期 
  输出形式取决于用户计算机的文化设置。 
    using System; 
    using System.Globalization; 
    public class MainClass 
    { 
        public static void Main(string[] args)  
        { 
            DateTime dt = DateTime.Now; 
            String[] format = {"d","D","f","F","g","G","m","r","s","t",
"T","u", "U","y","dddd, MMMM dd yyyy","ddd, MMM d ""'""yy","dddd, MMMM
dd","M/yy","dd-MM-yy",}; 
            String date; 
            for (int i = 0; i < format.Length; i++) 
                  { 
                     date = dt.ToString(format[i], DateTimeFormatInfo.InvariantInfo); 
                     Console.WriteLine(String.Concat(format[i], " :" , date)); 
                  } 
            } 
    }

  
    d :07/11/2004    <=======输出 
    D :Sunday, 11 July 2004 
    f :Sunday, 11 July 2004 10:52 
    F :Sunday, 11 July 2004 10:52:36 
    g :07/11/2004 10:52 
    G :07/11/2004 10:52:36 
    m :July 11 
    r :Sun, 11 Jul 2004 10:52:36 GMT 
    s :2004-07-11T10:52:36 
    t :10:52 
    T :10:52:36 
    u :2004-07-11 10:52:36Z 
    U :Sunday, 11 July 2004 02:52:36 
    y :2004 July 
    dddd, MMMM dd yyyy :Sunday, July 11 2004 
    ddd, MMM d "'"yy :Sun, Jul 11 '04 
    dddd, MMMM dd :Sunday, July 11 
    M/yy :7/04 
    dd-MM-yy :11-07-04

  3.3 格式化枚举 
    enum classmen 
    { 
      ynn=1, 
      yly=2, 
      css=3, 
      C++=4 
    }

  获取枚举字符串信息如下: 
    classmen myclassmen=classmen.yly; 
    Console.WriteLine(myclassmen.ToString( ));   //displays yly 
    Console.WriteLine(myclassmen.ToString("d")); //displays 2

  从系统枚举中获取文本人信息如下: 
    DayOfWeek day=DayOfWeek.Friday; 
    //displays "Day is Friday" 
    Console.WriteLine(String.Format("Day is {0:G}",day)); 
    格式化字符串“ G ”把枚举显示为一个字符串。 
  

===============================StringBuilder类=================================
 
  当要进行大规模的字符替换与调整操作时,使用字符串来操作将严重影响性能。在这中情况下就可以用System.Text.StringBuilder类。

 
 StringBuilder类并没有String
类的功能强大,只提供基本的替换和添加和删除字符串中的文本,但它的工作效率非常高,当定义StringBuilder对象时可以指定内存的内存容量,如
果不指定系统就会根据对象初始化时的字符串长度来确定。它有两个主要参数Length和Capacity分别表示字符串的实际长度和字符串占据的内存空间
长度。对字符串的修改就是在这个内存中进行的,大大提高了添加和替换的的效率。
如定义:

  StringBuilder sb=new StringBuilder(”Hello,Welcome”,100);//初始化对象并设置初始容量为100
       sb.Append(” to www.sinory.com”);
       sb.Replace(old,new);//将old替换为new,作用与String.Replace()一样只是不需要在过程中复制字符。

  StringBuilder的成员:
       StringBuilder sb=new StringBuilder(”www.google.com”);//定义初值为www.google.com的对象。
       StringBuilder sb=new StringBuilder(20);//初始化容量为20的空对象。
  另外StringBuilder还有MaxCapacity属性用来限定对象可以使用的最大容量。默认大约是int.MaxValue(20亿)
     可以在使用过程中定义sb.MaxCapacity=value;
     sb.Append()——给当前字符串追加字符串。
     sb.AppendFormat()——添加特定格式的字符串
     sb.Insert()——插入一个子字符串
     sb.Remove()——从当前字符串删除字符
     sb.Replace()——替换字符串中指定的字符
     sb.ToString()——将sb转化为String 对象

C#字符串操作大全的更多相关文章

  1. c语言字符串操作大全

     C语言字符串操作函数 函数名: strcpy 功  能: 拷贝一个字符串到另一个 用  法: char *stpcpy(char *destin, char *source); 程序例: #incl ...

  2. javascript中字符串常用操作总结、JS字符串操作大全

    字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温 ...

  3. JS字符串操作大全

    String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些不 ...

  4. js--javascript中字符串常用操作总结、JS字符串操作大全

    字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用操作做个整理,一者加深印象,二者方便今后温 ...

  5. Java基础(一)-- Java对字符串操作大全

    一.Java字符串类基本概念 在JAVA语言中,字符串数据实际上由String类所实现的.Java字符串类分为两类:一类是在程序中不会被改变长度的不变字符串:二类是在程序中会被改变长度的可变字符串.J ...

  6. python字符串操作大全

    1.去空格 strip() >>> s = 'a b c d ' >>> s.strip() 'a b c d' 2.lstrip() 方法用于截掉字符串左边的空格 ...

  7. Python字符串操作大全(非常全!!!)

    1. python编程里字符串的内置方法(非常全) capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居 ...

  8. js字符串操作

    javascript中字符串常用操作总结.JS字符串操作大全 String对象属性 (1) length属性 length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是 ...

  9. C语言字符串操作总结大全

    1)字符串操作 strcpy(p, p1)  复制字符串  函数原型strncpy(p, p1, n)   复制指定长度字符串  函数原型strcat(p, p1)   附加字符串  函数原型strn ...

随机推荐

  1. SSWR 跟 进一法除法

      1.对于浮点数SSWR float x = 3.456; //保留到小数点后两位 ) + 0.5) / 100.0; //output b = 3.46; 2.对于整数SSWR float x ; ...

  2. BZOJ3668 [Noi2014]起床困难综合症 【贪心】

    题目 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找到了该病的发病原因 ...

  3. android工程下assets与raw文件夹

    在应用的开发中,当我们创建一个新的Android工程后,我们会发现工程中包含了一个目录assets,另外当我们察看一些示例工程的时候,有时会发现在该工程的资源目录下会有一个raw目录(res/raw) ...

  4. 浅谈_IDEA导入Eclipse的Web项目

    相信很多同学在工作中都会遇到将一个Eclipse的Web项目导入IDEA的情景,这里浅谈一下具体的操作流程 一:Import Project,选择要导入的项目 二:选择以Eclipse模型的方式导入 ...

  5. SoundPool 播放提示音

    SoundPool 一个声音播放的辅助类,从名字可以看出,它具有 “池”的能力,它先加载声音文件到内存,以支持多次播放声音文件. 特点 SoundPool适合 短小的 声音文件 SoundPool适合 ...

  6. jQuery操作下拉列表以及单选多选框

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. Android 系统启动过程详解

    android 使用 linux 内核,一般运行在 ARM 体系架构上,android 设备启动的过程,应用层之下基本等同于linux, 从应用层第一个程序init开始有所区别,下面开始介绍. ste ...

  8. 关于__GNU_SOURCE 这个宏---如何开启【转】

    关于__GNU_SOURCE 这个宏 转自:http://blog.csdn.net/stevenliyong/article/details/4160181 版权声明:本文为博主原创文章,未经博主允 ...

  9. c++ poco StreamSocket tcpclient测试用例

    1.代码 #include <iostream> #include "Poco/Net/Socket.h" #include "Poco/Net/Stream ...

  10. how to configure team on liunx(RHEL7.x/Centos7.x)

    #install team sofeware yum install teamd -y #check team configuration nmcli con show #Next we create ...