zoukankan      html  css  js  c++  java
  • C#字符串学习笔记

    前言:记得我们老师说过一句话,对字符串的学习程度就是当别人打你一拳你知道痛的情况,所以字符串的处理我们必须学的差不多,这几篇博客完全是我的学习过程中记录的笔记,在这里分享一下让很多刚开始学习.net编程的人能够很快的学会怎么处理字符串

    1. string的构造方法

    (1) String和string意思一样,只是String是.net FrameWork提供的,而string是C#语言提供的

     (2)字符串是不可变的    

     class Program
    {
            static void Main(string[] args)
           {
                   string str = "123456";
                  (*)string s1 = new string(new char[] { '我', '是', '韩', '迎', '龙' }); //输出字符串
                  (*)string s2 = new string('0', 10);  //输出10个0
                  Console.WriteLine(s1);
                  Console.WriteLine(s2);
                  Console.WriteLine(5.ToString("00000")); //前面补0
                  string str1 = "韩闪闪";
                  char[] chs = str1.ToCharArray();
                  for (int i = 0; i < chs.Length; i++)
                   {
                          if (chs[i] == '闪')
                         {
    
                                 chs[i] = '珊';
    
                           }
    
                    }
    
                    str1 = new string(chs);
    
                    Console.WriteLine(str1);
    
                    Console.ReadKey();
    
            }
    
    }
    1. 字符串的方法和常量

    (1) 字符串赋初值的三种方法

         string str = "";

         string str1 = string.Empty;

         string str2 = null;

    (2)判断字符串是否为空

         Console.WriteLine(string.IsNullOrEmpty(string.Empty));

    (3)字符串拘留池(驻留池)

         使用字符串的时候,如果字符串相同,那么所有变量都指向同一个地方

    (4)字符串的比较方法

         1)比较两个字符串可以使用==或者Equals

         2)Equals的使用

                ->静态版本  string.Equals(object objA,object objB[,StringComparison com]);

                ->实例版本  str.Equals(object objA);

         3)一个静态的方法 Compare

                ->string.Compare(str1,str2)

                       str1>str2   1

                       str1=str2   0

                       str1<str2   -1

    (5)全部转换为小写,或者大写  ToLower,ToUpper

         string str="assdfdSDS";

         str=str.ToUpper();

         Console.WriteLine(str); //全部变成大写输出

    (6)去掉两端的空格和指定的元素

         string str=" 1234343 ";

         str=str.Trim();

         1)Trim(params char[] chs)

                  string str = "  11154544dfddf4351111  ";

           str = str.Trim(' ', '1');

           Console.WriteLine(str);

          //输出结果:54544dfddf435

    (7)字符串的合并和分隔

         1)合并

                string[] str = { "韩迎龙", "李潇絮", "小李飞刀" };

                string s = string.Join("|", str);

                Console.WriteLine(s);

                Console.ReadKey();

         2)分隔

                语法:

                       string[] <string>.Split(params char[] chs)

                       string[] <string>.Split(new char[] chs,StringSplitOptions.RemoveEmpty)

                       string s = "韩迎龙|23|男|女";

                       string[] str = s.Split('|');

                       Console.ReadKey();

    (8)判断字符串的长度

         1)语法:<string>.Length;

         2)字符串可以像数组一样使用"下标"访问(索引)

                for(int i=0;i<str.Length;i++)

                {

                       Console.WriteLine(str[i]);

                }

    (9)字符串查找

         1)判断是否包含 Contains

                ->语法:bool <string>.Contains(string str);

    string str = "张三,韩迎龙,李四,王五,马六,杨七";
    
     if (str.Contains("韩迎龙"))
    
     {
    
           Console.WriteLine("查找到了");
    
    }
    
    else
    
    {
    
           Console.WriteLine("没找到");
    
    }

                ->模拟Contains的实现(很局限)

    static bool MyContains(string src, char cmp)
    
    {
    
             bool isTrue = false;
    
             for (int i = 0; i < src.Length; i++)
    
             {
    
                      if (src[i] == cmp)
    
                     {
    
                            isTrue = true;
    
                            break;
    
                     }
    
           }
    
            return isTrue;
    
    }

         2)IndexOf 寻找索引

                ->语法:

                       int <string>.IndexOf(char ch);

                       int <string>.IndexOf(char ch[,int startIndex]);

                       int <string>.IndexOf(string str[,int startIndex]);

                              string str = " 好好学习,天天向上";

                              int indeof = str.IndexOf('向');

                ->模拟MyIndex的算法(很局限)                   

    static int MyIndex(string src, char cmp)
    
    {
    
           int index = -1;
    
           for (int i = 0; i < src.Length; i++)
    
          {
    
                     if (src[i] == cmp)
    
                   {
    
                            index = i;
    
                             break;
    
                    }
    
             }
    
             return index;
    
    }

         3)找出字符串中所有的"e"  

    static void Main(string[] args)
    
    {
    
           string str = "asfseeefsafserefeefsde";
    
           int index = -1;
    
           do
    
          {
    
                  index = str.IndexOf('e', index + 1);
    
                  if (index != -1)
    
                  {
    
                           Console.WriteLine(index);
    
                   }
    
         } while (index != -1);
    
    }    

    (10)LastIndexOf 从右边往左边找

          string str = "32errrwefsfsd";

        int index = str.LastIndexOf('e'); //输出7

    (11)子字符串

         1)语法:string <string>.SubString(开始的索引,字符串的长度);

                       string <string>.SubString(开始的索引);

         2)案例:

                string str = @"F:\heima\practice\string.exe";

           int start = str.IndexOf('\\');

           int length = str.IndexOf('\\', start + 1) - start;

           string s = str.Substring(start + 1, length - 1);

         3)跑马灯的效果         

    string str = "北京欢迎您  ";
    
    while (true)
    
    {
               Console.Clear();
    
               str = str.Substring(1) + str.Substring(0, 1);
    
               Console.WriteLine(str);
    
               System.Threading.Thread.Sleep(200);
    
    }

    字符串的插入,移除,替换

                  1)insert

                         string str = "时间就是一把杀猪刀啊";

                str = str.Insert(0, "世界上");

                  2)remove

                         string str = "时间就是一把杀猪刀啊";

                str = str.Remove(0, 2);

                  3)replace

                         string str = "时间就是一把杀猪刀啊";

                str = str.Replace("时间", "小贤");

           (13)判断结束和开始

                  1)判断字符<string>串是否已某字符串开始或结束

                  2)bool <string>.StartsWith(string str);

                  3)bool <string>.EndsWith(string str);             

    1)第一个案例
    
     string[] str = {"白天不懂夜的黑.mp3",
    
                     "梦想的力量.mp3",
    
                      "旧梦重弹.wma",
    
                      "我相信.mp3" 
    
                   };
    
      for (int i = 0; i < str.Length; i++)
    
      {
    
            if (str[i].EndsWith(".mp3"))
    
            {
    
                 Console.WriteLine(str[i] + "下载成功");
    
            }
    
            else
    
            {
    
                   Console.WriteLine(str[i] + "格式不正确");
    
             }
    
    }
    
     2)第二个案例
    
    static void Main(string[] args)
    
    {
    
        string path1= "http://www.cnblogs.com";
    
        string path2 = "http://www.cnblogs.com/";
    
        string file = "旧梦重弹.mp3";
    
        string downfile = GetFileName(path1, file);
    
         Console.WriteLine(downfile);
    
         Console.ReadKey();
    
    }
    
    static string GetFileName(string path, string file)
    
    {
    
         if (path.EndsWith("/"))
    
         {
    
               return path + file;
    
         }
    
          else
    
       {
                 return path + '/' + file;
    
          }
    
    }

    (14)字符串的几个练习题

       1)接收用户输入的字符串,将其中的字符以相反的顺序输出"韩迎龙"->"龙迎韩"

    static void Main(string[] args)
    
    {
    
             string str = "韩迎龙";
    
            //第一种写法
    
             for (int i = str.Length-1; i  >=0; i--)
    
           {
    
                   Console.Write(str[i]  );
    
           }
    
            //第二种写法
    
            string strname = Exercise(str);
    
            Console.WriteLine(strname);
    
    }
    
    static string Exercise(string str)
    
    {
    
            char[] chs = str.ToCharArray();  //变成char数组
    
              for (int i = 0; i < chs.Length / 2; i++)
    
               {
    
                      char temp = chs[i];
    
                       chs[i] = chs[chs.Length - i - 1];
    
                       chs[chs.Length - i - 1] = temp;
    
                 }
    
                  return new string(chs);
    
    }

       2)接受用户输入的一句英文,将其中的单词反序输出。"I Love you"->"I evol uoy"

    static void Main(string[] args)
    
    {
    
          string str = "I Love You";
    
          str = Exercise(str);
    
           Console.WriteLine(str);
    
    }
    
    static string Exercise(string str)
    
    {
    
              string[] strs = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
    
                for (int i = 0; i < strs.Length; i++)
    
                {
    
                         strs[i] = Exercisetwo(strs[i]);
    
                }
    
                 return string.Join(" ", strs);
    
     }
    
    static string Exercisetwo(string str)
    
    {
    
            char[] chs = str.ToCharArray();  //变成char数组
    
             for (int i = 0; i < chs.Length / 2; i++)
    
             {
    
                    char temp = chs[i];
    
                     chs[i] = chs[chs.Length - i - 1];
    
                      chs[chs.Length - i - 1] = temp;
    
              }
    
              return new string(chs);
    
    }

        3)"2012年12月21日"从日期字符串中把年月日分别取出来,打印到控制台     

    static void Main(string[] args)
    
    {
    
           string str = "2012年10月03日";
    
           string[] strs = str.Split(new char[] { '年', '月', '日' });
    
            Console.WriteLine(string.Join(" ", strs));
    
            Console.ReadKey();
    
    }

       4)把csv文件中的联系人的姓名和电话显示出来,简单模拟

         注:首先将一个name.txt结构的文档放在项目的Bin的Debug目录下面,使其代码能够读到这个,里面的结构是"韩迎龙|男|23"

    static void Main(string[] args)
    
    {
    
            string[] lines = File.ReadAllLines("name.txt");
    
             for (int i = 0; i < lines.Length; i++)
    
              {
    
                       string[] strTemp = lines[i].Split(new char[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
    
                         Console.WriteLine("姓名:{0},年龄:{1}", strTemp[0], strTemp[2]);
    
             }
    
    }
  • 相关阅读:
    ORACLE AWR 和 ASH
    11g RAC R2 日常巡检--Grid
    Linux中重命名文件
    Xshell4连接Linux后 win快捷键锁屏
    vim 删除临时文件
    shell--read命令
    shell基础篇(一)从hello world开始
    ORACLE--分区表数据清理
    Shell—学习之心得
    awk 手册--【转载】
  • 原文地址:https://www.cnblogs.com/hanyinglong/p/2711971.html
Copyright © 2011-2022 走看看