数组,方法,ref和out关键字,字符串的常用方法 strin与StringBuilder

来源:互联网 发布:银行软件开发必备知识 编辑:程序博客网 时间:2024/06/07 23:38

一 数组

int[] numArr1;  //对数组声明

            numArr1 = new int[10];  //对数组的实例化

//下面的数组是在声明数组并实例化后并重新对数组的默认值(元素)进行修改了

            int[] numArr2 = new int[5] { 120, 252, 3555, 4, 5 };

数组的编号从0开始。

数组是引用类型。

值类型是从栈中修改值,所以改变一个值对其他的值没有影响;引用类型是改变栈中的地址,再通过地址从堆中取值,所以改变一个地址相同地址的都会变化。

数组的常见操作:遍历  最值 排序 反转

  二维数组

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

            //得到数组有3

            Console.WriteLine(numArr4.GetLength(0));

            //得到数组有4

            Console.WriteLine(numArr4.GetLength(1));

 

            for (int i = 0; i < numArr4.GetLength(0); i++)

            {

                for (int j = 0; j < numArr4.GetLength(2); j++)

                {

                    Console.Write(numArr4[i,j] +" ");

                }

                Console.WriteLine();

上面for循环求得二维数组的所有数值。

二 方法

  静态方法  static修饰的方法叫做静态方法

方法的是三要素:返回值类型  方法名  参数

返回值类型包含:void   值类型 引用类型

方法名的规范:大驼峰命名法  

Main方法的返回值类型只能是void  int  

Main方法的参数可有但是必须是string[]类型的

方法的名字在同一个类中是不能重复的

Main方法里面进行调用的时候传入的参数 是实际参数 简称实参

            int numbers = 10;

            PrintGraphic(numbers)

先对方法定义

        然后在Main方法中调用

        方法后面的括号是一个参数列表  里面的变量是形式参数  简称形参类似一个傀儡

        static void PrintGraphic(int lines)

        {

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

            {

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

                {

                    Console.Write("*");

                }

                Console.WriteLine();

重载的条件有以下几个条件:

        // 方法名必须一致

        //参数列表不同 

   //参数列表的情况有以下几种情况

        //参数的数量不同

        //参数的类型不同

        //参数的顺序不同

 

        //在方法中  参数名称没有什么实际的作用   只是用来区别不同的参数而已

        //参数列中的类型决定了实际参数的类型

必选参数和可选参数

方法里可以给声明的虚参数赋值,当主体方法中的实际参数不够时可以用方法里的虚参数补齐。实际参数优先于虚拟参数。

三 ref关键字

ref是可进可出的关键字。下面案例使Main方法中的num1num2Swap方法变化,都输出num1=20num2=10ref关键字相当于把两个方法的参数绑在一起。

static void Main(string[] args)

        {

            int num1 = 10;

            int num2 = 20;

            Swap(ref num1, ref num2);

            Console.WriteLine("+++ num1={0},num2={1}", num1, num2);

        }

        static void Swap(ref  int num1,ref int num2)

        {

            int temp = num1;

            num1 = num2;

            num2 = temp;

            Console.WriteLine("**** num1={0},num2={1}",num1,num2 );

        }

四 Out关键字

Out关键字是只出不进的关键字。下面的案例是weekdayTest方法中计算并输出给Main方法,使Main方法获得计算后的值。

  static void Main(string[] args)

        {

            int numbers = 46;

            int week;

            int day;

            Test(46, out week,out  day);

            Console.WriteLine("{0}{1}",week,day);

        }

        static void Test(int days,  out int week,out int day)

        {

            week = 0;

            day = 0;

                week = days / 7;

            day = days % 7;

        }

五 

1 字符串常用方法

字符串的不可变性:字符串是一个常量。

字符串拘留池机制:当一个字符串已经被创建,那么以后每次创建相同值的字符串时会直接引用它的地址值,无需为自己的值开辟新的内存空间。

2 字符串的静态方法

字符串比较:

Compare()方法用于比较两个字符串是否相等,该方法有两个string类型参数,用于接收进行对比的字符串。如果第一个字符串大于第二个字符串,则返回一个1;如果两个字符串相同,则返回0;若第一个字符串小于第二个字符串,则返回一个-1。。

Console.WriteLine(string.Compare("abcd","abc"));

上述语句返回1,因为前三个元素相等,第一个字符串长于第二个。

格式化字符串:

Format()方法

string str = string.Format("姓名:{0},年龄:{1}","小明", 10);

判断字符串是不是一个空字符串:

IsNullOrEmpty()方法

bool ret = string.IsNullOrEmpty("1");

字符串拼接

Join()方法的作用是使用指定的字符或字符串,将字符串数组中的元素连接起来。

string ret = string.Join("_", "王垚","亚东","志帆");

            Console.WriteLine(ret);

3 字符串的实例方法

Contains()方法用于判断一个字符串中是否包含指定字符串

Console.WriteLine("abcdefgh".Contains("def"));

EndsWith()方法的作用是判断当前字符串是否以指定字符串结尾

string str = "C#编程之道";

bool ret = str.EndsWith("之道");

StartsWith()方法的作用是判断当前字符串是否以指定字符串开头

bool ret = str.StartsWith("之道");

IndexOf()方法用于返回指定字符或字符串在字符串中的索引,在查找过程中,从字符串左边开始查找,如果找到第一个,便返回对应的索引且方法结束,否则返回-1

1)找出第一个字所在的索引

index = str.IndexOf("编程");

2)找出索引为2开始共两个元素,两个元素都存在则输出第一个字符的索引,否则-1

index = str.IndexOf("编程",2,2);

LastIndexOf用来从尾部向首部找到所找元素的下标

int index = str1.LastIndexOf(".");

Split()方法专门用来分隔字符串。例如有一个字符串I have a dream”,要想统计该字符串中单词的个数,可以使用 Split()方法将字符串以空格分隔成字符串数组。

  str = "I have     a dream";

string[] strArr = str.Split(new char[] {' '},StringSplitOptions.RemoveEmptyEntries);

StringSplitOptions 用来省略返回值中的空字符串

Substring()方法的作用是对字符串进行截取,例如要获取文件的后缀名,可以使用Substring()方法。

从索引5开始找到所有的元素

string num = "222023333";

string retStr = no.Substring(5);

从索引为0的位置开始截取5个长度的字符座位字符串返回

retStr = no.Substring(0,5);

ToCharArray()方法将一个字符数组转化成字符串

char[] chArr = str.ToCharArray();

string str1 = new string(chArr);

ToUpper()方法的作用是将字符串中所有的英文字母都变成大写的

str = str.ToUpper();

ToLower()方法的作用是将字符串中所有的英文字母都变成小写的

str = str.ToLower();

Trim()方法的作用是去除字符串两端的空格,例如在检测用户输入信息时,如果用户不小心在结束的位置输入了一个空格,那么将无法获得准确数据。因此,需要使用 Trim()方法将字符串两端的空格去掉。

str = "      张     三      ";

剔除字符串前缀空格和后缀空格

            str = str.Trim();

剔除前缀空格

            str = str.TrimStart();

剔除后缀空格

            str = str.TrimEnd();

剔除其他符号

str = "*******张  **  *******";

            str = str.Trim('*');

Replace用来指定字符替换旧的字符

  str = str.Replace("TMD","**");

StringComparison用来指定某些区域、大小写或排序规则

StringComparison.OrdinalIgnoreCase使用序号排序规则并忽略字符串的大小写,对字符串进行比较

("c#",StringComparison.OrdinalIgnoreCase);

Encoding.ASCII.GetBytes(str);用来将字符串转化为ASCII

string retStr = Encoding.ASCII.GetString(byteArr);用来将ASCII码转化为字符串

六 StringBuilder

StringBuilder类,它和String类都用来操作字符串。与String类不同的是,StringBuilder类创建的字符串的长度是可以改变的,它类似一个字符容器,当在其中添加或删除字符时,并不会产生新的StringBuilder对象,因此可以让字符串的拼接操作变得更加高效。

******StringBuilder类可以把输入其中的数据转化为字符串,所以不仅能输入字符串,还能输入其他类型的数据。******

StringBuilder sb = new StringBuilder();

***Append方法向类/集合中添加元素***甚至可以添加对象来实现

sb.Append(12);

sb.Append(new Student());

AppendFormat用法类似于string.Formatjehe

sb.AppendFormat()

Insert插入方法,在下标为X的方位插入需要的元素

sb.Insert(0, "YY");

Remove移除方法,在下标为X的方位移除Y个元素

sb.Remove(0,2);

Replace替换方法,(1)将X字符替换为Y字符

sb.Replace("1991","1998");

2)第一个int参数代表X开始寻找替换的下标。第二个int参数代表寻找Y参数,只有由X开始找并找Y个元素,完全覆盖被替换的参数“19”,才能替换成功。

sb.Replace("19","2000",4,2);

Capacity代表当前StringBuilder的容量

sb.Capacity





原创粉丝点击