数组、集合、字符串操作、函数小结

 字符串的操作

字符串类型

   1、去空格

    Trim();   // 取头尾空格,还有去前边空格,去后边空格

  2、全部大小写

    ToUpper(); //全部大写

    ToLower(); //全部小写

  3、判断是否以子串开头、结尾、是否包含

    StartsWith("s"); //是否以  s  开头,是返回true

    EndWith("s");  //是否以  s  结尾,是返回true

    Contains("s"); //是否包含  s  ,是返回true

  4、判断字符串出现的位置

    IndexOf("s");  //从字符串中找到 s 第一次出现的位置,没有返回-1

    LastIndexOf("s");//最后一次出现的位置,没有返回-1

  5、字符串的截取、替换、拆分

     SubString(起始位置,长度(可以省略)); //字符串的截取

    Replace("_","-");//替换

    Split('_');   //拆分 

      string a = "a_sdfw";
      string b = a.Replace("_","-"); //替换
      Console.Write(b + " ");
      string[] c = b.Split('-');   //拆分
      for (int i = 0; i < c.Length; i++)
      {
        Console.Write(c[i]+" ");
      }

日期时间类型

  1、设置时间

    DateTime dt = new DateTime();
    DateTime dt = new DateTime(1999,3,12);
    DateTime dt = new DateTime(1999,3,12,15,47,56);年月日时分秒

  2.获取当前时间

    DateTime dt = DateTime.now;

  3、分别获取年月日时分秒

    dt.Year;  dt.Mouth;  dt.Day;......

  4、星期的第几天,年的第几天

    dt.DayOfWeek;  dt.DayOfYear;

  5、增加多少个月...之后是哪一天,— 号表示之前多少个月是哪一天

    dt.AddMouth(12);  dt.AddMouth(-12);  dt.Add×××();

  6、设定格式

    1、日期时间类型格式

      dt.tostring("yyyy年MM月dd日hh时mm分ss秒");

      yyyy、yy  MM,M  dd,d......

    2、double类型格式     

      double a = 0;
      a.tostring("#,#.00"); //总共四个符号 # 0 , .

      逗号表示三位一分,0表示必须显示,没有就显示0

      #.00  #.##  #,#.##

数学运算符

  天花板数、地板数、四舍五入

    math.ceiling(3.14);只对小数有效 天花板数 3.0 ==3 3.1 ==4 大于等于当前小数的最小整数  

    math.Floor(3.14); 小于当前小数的最大整数
    math.Round(3.14); 四舍五入

  

数组中存储的是连续的同一类型的数据。

一维数组:

定义:  数据类型[] 数组名 = new 数据类型[数组长度];

     数据类型[] 数组名 = new 数据类型[数组长度]{元素1,元素2,元素3......};

例如:1、 int[] a = new int[5];

     2、 int[] a = new int[5]{1,2,3,4,5}

问题:示例 2 中数组长度可不可以不写,请在评论中回答

说明:

   1、数据类型[]       表示数组类型

      数组名        表示数组变量

      new         表示创建

      数据类型[数组长度]  数组长度不能为空(第一种定义) 

     2、数组下标:用来确定数组中每个元素的位置,数组下标从0开始

   3、数组赋值:数组名[数组下标] = 值   注意数据类型相同

   4、数组取值:变量 = 数组名[数组下标]  注意数据类型相同

   5、数组的遍历:

      for循环遍历数组       

        int[] a = new int[5];

        for(int i = 0;i<a.length;i++)  //a.length表示数组长度

        {              //需要注意数组长度与下标的关系

          Console.WriteLine(a[i]);

        }

      foreach遍历数组       

        int[] a = new int[5];

        foreach(int i in a)

        {

          Console.WriteLine(i);

        }

具体操作看博客:数组操作

 二维数组

定义:  数据类型[,] 数组名 = new 数据类型[行数,列数];

     数据类型[,] 数组名 = new 数据类型[3,2]{{1,2},{2,3},{3,4}};

例如:  int[,] a = new int[3,4];

     ......

说明:  1、名词解释同一维数组

     2、数组下标同一维数组

     3、数组赋值:数据类型[行下标,列下标] = 值

            a[0,0] = 1;

     4、数组取值:数据类型[行下标,列下标]

     5、数组的遍历:

       for循环遍历数组       

        int[,] a = new int[3,4];

        for(int i = 0;i<3;i++)  

        {    

          for(int j = 0;i<4;j++)  

          {         

            Console.WriteLine(a[i,j]);

          }

        }

 具体操作看博客:二维数组操作

 锯齿数组:数组的数组

定义:  第一步:定义大数组

       数据类型[][] a= new 数据类型[行数][];  列数不写

     第二步:定义小数组

       数据类型[] a1 = new 数据类型[列数];

       数据类型[] a2 = new 数据类型[列数];

       ......

     第三步:把小数组放到大数组中

       a[0] = a1;

       a[1] = a2;

       ......

例如:

    int[][] a = new int[3][];

    int[] a1 = new int[] { 3, 4, 5, 6, 7 };
    int[] a2 = new int[] { 1, 2, 3 };
    int[] a3 = new int[] { 7, 8, 9, 10 };

    a[0] = a1;
    a[1] = a2;
    a[2] = a3;

     a.Length == 3;

     其中锯齿数组的  length是3 指的是三个元素,每个元素中还有数组

二维数组与锯齿数组的比较:

    int[,] a = new int [3][4]; //错
    int[][] a = new int[3,4]; //错
    int[][] a = new int[3][4]; //错
    int[,] c = new int[3,4]; //对

    c.Length == 12;  

    二维数组中的  length 是12  指的是个数

 集合

  1、ArrayList

    链表结构,没有长度限制,可以随时向里添加或删除元素

    需要在前面加上:using System.Collections;

    定义:  ArrayList a = new ArraryList90;

    操作:

      添加:    a.Add(数据);

      插入:    a.Insert(索引号,数据);

      删除:    a.RemoveAt(索引号);

      集合长度:  a.Count //集合中元素的个数

      取值:    a[下标]   //取出来的值需要进行强制转换

  2、List<类型>

    链表结构,没有长度限制,可以随时向里添加或删除元素

    只能放指定类型的数据,取出来不用强制转换

    定义:  List<类型> 变量名= new List<类型>();

         List<int> a = new List<int>();

    操作:

      添加:    a.Add(数据);

      插入:    a.Insert(索引号,数据);

      删除:    a.RemoveAt(索引号);

      集合长度:  a.Count //集合中元素的个数

      取值:    a[下标]  

      排序:    a.Sort();

      反转:    a.Reverse();

  3、Dictionary<key,value>字典或哈希表

    定义:  Dictionary<int,string> a = new Doctionary<int,string>();

    操作:

      添加:    a.Add(键值,数据);

      删除:    a.Remove(键值);

      集合长度:  a.Count;

      取值:    a[键值]

  4、栈,队列 知道就行了

    栈:先进后出,不能随机取其中任意一个值

    定义:  Stack<数据类型> a = new Stack<数据类型>();

      添加:    a.Push(值);

      取值:    数据类型 变量名 = a.Pop();

    队列:先进先出,不能随机取其中任意一个值

    定义:  Queue<int> a = new Queue<int>();

      添加:    a.Enqueue(值);

      取值:    数据类型 变量名 = a.Dequeue();


函数:
  1、主要功能就是为了让代码结构更加良好
  2、函数是---实现相对独立功能的程序代码模块(程序段)
  3、函数的四要素:函数名、输入、输出、运算
  4、有的函数没有输入,函数名后的小括号可以不写东西,但必须有小括号
  5、有的函数没有返回,在函数名的左侧不要写数据类型,写void即可

  定义语法:
      static 返回类型 函数名(形参列表)
      {
        函数体,运算
      }

  例:
      static int Max(int a,int b)
      {
        if(a > b)
        {
          return a;
        }
        else
        {
          return b;
        }
      }

  调用方法:
    数据类型 变量名 = 函数名(实参列表);
    int n = Max(7,8);

    形参与实参一定要一一对应。 包括 个数,类型

传值
  把实参的数据做个复本,送到函数的形参中取。
  一般基本类型(int、double、char、bool、DateTime)都是值类型,
  默认情况下会传值

传址
  吧实参的地址传到函数的形参中区
  形参与实参公用一个数据空间
  一般引用类型都是传址(string 数组)
  string传址 但是操作的话会新建一个

原文地址:https://www.cnblogs.com/yongjiapei/p/5428208.html