字符串的处理

1、字符串的定义
     string str="我是一个字符串asdfg";
     string str1=new string(new char[]{'1','一','a'});
     string str2=new string('c',3); // 也就是 "ccc"
   字符串当做数组用,但是这里的数组表示法str[i],是只读的。
   for(int i=0;i<str.length;i++){ Console.WriteLine(str[i]);}
   字符串转换为数值
   char[] chs=str.ToCharArray();
   
  2、字符串的不变性(虽然string是引用类型的)
  string str="1234"; string str1=str ; str="567"; 此时str1还是 "1234"
  
  3、常见字符串属性与方法
     1、比较 str1.Equals(str2) 、==、Compare()(int string.Compare(str1,str2,bool))
     2、转化大小写:str.ToUpper、str.ToLower
     3、修整:  str.Tirm()去掉前后空格,
        str.Tirm(']','[')去掉前后特殊字符
        TrimEnd、TrimStart
     4、合并与分割
        //合并字符串数组
        string[] strs={"姓名1","姓名2","姓名3","姓名4"};
        string str=string.Join("|",strs);//得到一个字符串由|分割
        //切割字符串成数组
        string path=@"c:\Windows\System32\1.dll";
        string[] paths=path.Split('\\');
        
     5、查找:
      IndexOf()、IndexOfAny()、LastIndexOf()
     找出字符串中所以出现"dede"的索引值
     string str=@"D:\Music\dede_专辑\dede_天黑\dede_专辑\dede_\dede_专辑\dede_天黑黑天黑黑黑.mp3";
     int index = -1;
     do
     {
      index = str.IndexOf("dede", index + 1);
      if (index != -1)
      {
      Console.WriteLine(index);
     }
     }
      while (index != -1);
      
     6、子字符串
       1、string str.Substring(index) 从index开始到结束的所有部分
       2、string str.Substring(index, Length);
  
     7、格式化字符串
     string.Format();
     
     走马灯效果
     string str = "我是一个走马灯";
     while (true)
     {
      Console.Clear();
      string head = str[0].ToString();
      string body = str.Substring(1);
      str = body + head;
      Console.WriteLine(str);
      System.Threading.Thread.Sleep(200);
     }
     
     8、字符串的插入、移除和替换
      str.Insert(int index,string str);
      str.Remove(int index,int N);
      str.Replace(string strOld,stringNew)
      
     9、判断开始和结尾
      string path = @"D:\123\456\happy2000.wma";
      if (path.EndsWith(".mp3"))
      
     10、把.csv的逗号分隔符数据文件读取到数组中间
      string[] lines = File.ReadAllLines(@"C:\123.csv",Encoding.Default);
     
 4、字符串拼接用 StringBuilder 效率比s tr+= 高处很多
   StringBuilder sb = new StringBuilder();
            // Append
            // ToString()
            // AppendLine
            // AppentFormat
   
 5、Equals比较
  字符串的比较用Equals与==效果一样
  在自定义类中,可以重新Equals方法,实现指定类型间的比较
        class MyClass
     {
      public int num;

      public override bool Equals(object obj)
     {
     MyClass m = obj as MyClass;
     if (m == null)
     {
      return false;
     }
     return this.num == m.num;
     }

     public static bool Equals(MyClass m1, MyClass m2)
     {
      return m1.num == m2.num;
     }
     }
     
文件操作中:
   1、读取每一行指定路径的文件
    File.ReadAllLines(string path,Encoding encoding);
    
   2、获取指定目录下指定类型文件的文件名
    string strFilePath=Directory.GetFiles("D:\Data\","*.jpg");
   
   3、获取指定文件路径字符串中的路径
    string dirPath=Path.GetDirectoryName(fileName);
    比如:fileName="d:\data\123.jpg", dirPath="d:\data"

原文地址:https://www.cnblogs.com/dedeyi/p/2580074.html