c#中数组的声明和初始化以及字符串(string )对象基础特征属性常⽤⽅法字符
串格式化Format
注:以下代码皆在控制台输出(控制台应⽤程序)
⼀.数组
数组是⼀个存储相同类型元素的固定⼤⼩的顺序集合。数组是⽤来存储数据的集合,通常认为数组是⼀个同⼀类型变量的集合。初始化数组
声明⼀个数组不会在内存中初始化数组。当初始化数组变量时,您可以赋值给数组。数组是⼀个引⽤类型,所以您需要使⽤ new 关键字来创建数组的实例。
重点:(三种)
⼆.字符串using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _03数组的声明和初始化{ class Program { static void Main(string[] args) { //第⼀种 //声明数组 //int[] array; //1.声明数组的长度:规定了这个数组中允许存放的这种类型的对象的最⼤数量 int[] array = new int[5];//格式:类
型[]数组名称=new 类型[长度] //2.给数组中装内容,给每个位置⾥⾯放置⼀个数组类型的对象 //索引:代表数组中的位置编号从0开始 //3.在使⽤数组的时候必须要注意:数组的索引绝对不允许超过数组的长度范围(最⼤索引=数组的长度-1) array[0] = 20; array[1] = 21; array[2] = 22; array[3] = 23; array[4] = 24; //4.数组属性length:指数组的长度 //5.如果数组中某个位置未赋值,这个位置的对象值将是这个类型的默认值; //第⼆种 //1.直接初始化赋值:⼤括号中的赋值顺序和数组中的索引位置⼀致,既不能多也不能少 int[] array1 = new int[5] { 0, 1, 2, 3, 5 }; //第三种 //直接给数组赋值,省略实例化过程 //这种写法数组的长度完全取决于初始化过程中填充的内容个数 int[] array2 = { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10 }; for (int i=0;i<array.Length;i++) { Console.WriteLine(array[i]); } Console.ReadLine(); } }}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
1.基础特征 (1)字符串:是⼀连串的字符组成 (2)string是对system.string命名空间起的⼀个名字 (3)引⽤类型:存储空间⼤,调取速度较慢
(4)字符串初始化之后⾥⾯的内容不再发⽣改变,当引⽤指针发⽣改变先创建了个新的string对象,然后存储新的引⽤地址 2.string类的属性(1)length:返回字符串中字符的长度 (2)chars:意思是可以将字符串当成数组,使⽤索引获取某个字符 3.string类常⽤⽅法 (1)⾮静态⽅法 ①Contains: 检测在操作的字符串中是否能够到参数中填写的字符串,能到返回true
②CopyTo:
将操作的字符串中的某段字符,复制到⼀个char数组中
③EndsWith:检测操作的字符串的结尾是否和参数字符串相同,相同返回true
④StartsWith:
同EndsWith⼀样,检测操作的字符串的开头
⑤IndexOf:
检测操作的字符串中的某个字符或字符串的索引,如果不到返回-1
⑥LastIndexOf:检测操作的字符串中的某个字符或字符串的索引,倒着寻最后⼀个
⑦Insert:
在操作的字符串中的某个位置插⼊⼀个字符串 String str = "英莱特科技"; char c=str[1]; Console.WriteLine(c); Console.WriteLine(str.Length);
1
2
3
4 string str = "英莱特信息科技有限公司"; bool b1 = str.Contains("信息"); Console.WriteLine(b1);
1
2
3 string str = "英莱特信息科技有限公司"; bool b1 = str.EndsWith("公司"); Console.WriteLine(b1);
1
2
3 string str = "英莱特信息科技有限公司"; int b1 = str.IndexOf("信"); Console.WriteLine(b1); int b2= str.IndexOf("鹰莱特"); Console.WriteLine(b2); int b3 = str.LastIndexOf("有限"); Console.WriteLine(b3);
1
2
3
4
5
6
7
⑧PadLeft:
复制操作的字符串到⼀个新的字符串中,新字符串的长度为所填参数,如果新字符串长度过长,在操作字符串左边填充空格(或者指定字符),达到长度,如果⼩于或等于操作字符串,则直接复制字符串
⑨PadRight:
同PadLeft在右边使⽤空格(或指定字符)填充
⑩Remove:第⼀层重载:从指定的这个索引开始删除整个字符串之后。第⼆层重载:从指定索引删除
指定长度字符
Replace:替换操作字符串中所有的某个字符或字符串
Split:
将操作字符串通过其内部的某个字符或多个字符进⾏分割 string str = "英莱特信息科技有限公司"; string str1=str.Insert(3,"InLett"); Console.WriteLine(str1);
1
2
3 string str = "英莱特信息科技有限公司"; string str2=str.Remove(3,2); Console.WriteLine(str2);
1
2
3 string str = "英莱特信息科技有限公司"; string str2 = str.Replace("英莱特","InLett"); C
onsole.WriteLine(str2);
1
2
3string str = "英莱特,信息,科技,有限,公司"; string[] strlist = str.Split(new char[] { ','}); foreach (string item in strlist) { Console.WriteLine(item); }
1
2
3
4
5
6
Substring:
将操作的字符串在指定索引位置往后截取,也可以指定截取的长度
ToLower:
将字符串中的⼤写字母全部转换为⼩写字母
ToUpper:
将字符串中的⼩写字母全部转换为⼤写字母
Trim:
去掉操作字符串两边的空格
TrimEnd、TrimStart:
去掉字符串结尾或开头的空格(2)静态⽅法 ①Compare: ⽐较两个字符串的长度,前⾯长1,长度相等内容完全不同/后⾯长-1,长度相等内容相等0
②Copy:
复制⼀个字符串并返回复制结果
③Concat:将多个对象类型内容链接起来
④Format:
格式化字符串形式,使字符串成为标准字符串,在使⽤占位符时,最好对字符串进⾏格式化处理
引⽤类型的相等⽐较 System.Object定义了三种不同的⽅法,来⽐较对象的相等性:ReferenceEquals()和两个版本的Equals()。再加上⽐较运算符(= =),实际上有4种进⾏⽐较相等的⽅式。 ⽐较运算符(= =) 对于引⽤类型,= =默认的⾏为与ReferenceEquals的⾏为相同,仅有两个对象指向同⼀个Reference的时候才返回true。 Framework中的类很多对= =进⾏了重载, 例如String类的= =与Equals的⾏为相同,判断两个字符串的内容是否相等。所以在应⽤中,对于系统定义的引⽤类型建议不要使⽤= =操作符,以免程序出现与预期不同的运⾏结果。 重载的运算符 = = 实现不应引发异常 。重载运算符 == 的任何类型还应重载运算符!=。 值类型的相等⽐较 在⽐较值类型的相等时,采⽤与引⽤类型相同的规则:ReferenceEquals()⽤于⽐较引⽤,Equals()⽤于⽐较值,⽐较运算可以看做是⼀个中间项。但最⼤的区别是值类型需要装箱,才能把他们转换为引⽤。 ReferenceEquals()在应⽤于值类型时,总是返回false。因为调⽤这个⽅法,需要装箱。 //⽐较两个字符串内容是否完全相同,如果是返回0,否则返回1 int i1=String.Compare("英莱特科技", "英莱特科技"); Console.WriteLine(i1); int i2= String.Compare("英莱特科技", "科技信息有限公司"); Con
sole.WriteLine(i2); int i3 = String.Compare("英莱特科技", "信息有限公司"); Console.WriteLine(i3);
1
2
3
4
5
67 string str=String.Concat("英莱特","科技","信息","有限","公司"); Console.WriteLine(str);
1
writeline特点2 int i = 100; int j = 100; bool b1 = Object.ReferenceEquals(i, j); Console.WriteLine(b1);
1
2
3
4
⑤IsNullOrEmpty:
判断如果字符串是null或者""或者Empty返回true
⑥IsNullOrWhiteSpace:
判断字符串是null或者“”或者Empty或者字符串中没有可显⽰的字符内容都返回true
⑦Join:串联⼀个对象数组⾥⾯的每⼀项,使⽤⼀个字符串做连接标志
4.字符串格式化Format (1)数值类型数据的格式化 ①C/c:货币 ②E/e:科学计数法 ③N/n:输出分隔符显⽰数字 ④F/f:输出⼩数点后⼏位⑤X/x:转换成⼗六进制表⽰ ⑥P/p:百分号 (2)⽇期时间类型数据的格式化 ①d:短⽇期形式 YYYY/MM/dd ②D:长⽇期形式 YYYY年MM⽉dd⽇ ③f:完整⽇期、时间格式(短时间)YYYY年MM⽉dd⽇ hh:mm ④F:完整⽇期、时间格式(长时间)YYYY年MM⽉dd⽇
hh:mm:ss ⑤g:常规⽇期、时间格式(短时间)YYYY/MM/dd hh:mm ⑥G:常规⽇期、时间格式(长时间)YYYY/MM/dd hh:mm:ss ⑦M/m:⽉/⽇格式 MM⽉dd⽇ ⑧t:短时间 hh:mm ⑨T:长时间 hh:mm:ss ⑩Y/y:年/⽉格式 YYYY年MM⽉
(3)ReferenceEquals()⽅法 命名空间: System 程序集:mscorlib.dll 语法:public static bool ReferenceEquals(Object objA,Object objB) 可以看出ReferenceEquals()是⼀个静态⽅法,确定指定的Object实例是否是相同的实例。作为静态⽅法,所以不能重写 例如:使⽤ReferenceEquals()⽅法⽐较字符串
当⽐较字符串时如果objA和objB是字符串,如果该字符串会暂留,ReferenceEquals⽅法返回true。它不执⾏值相等测试。在下⾯的⽰例中,因为它们是⼀个暂存的字符串的两个实例,s1和s2相等。 但是,s3和s4不相等,因为尽管它们是具有相同的字符串值,字符串不会
暂留。string[] strlist = { "英莱特", "信息", "科技", "有限", "公司" }; string str2=String.Join("|",strlist); Console.WriteLine(str2);
1
2
3 string s1 = "英莱特科技"; string s2 = "英莱特科技"; bool b1=System.Object.ReferenceEquals(s1,s2); Console.WriteLine(b1); string buffer = "A"; string s3 = "英莱特科技" + buffer; string s
4 = "英莱特科技" + buffer; bool b2 = Object.ReferenceEquals(s3, s4); Console.WriteLine(b2);
1
2
3
4
5
6
7
8
9
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论