Unity系统班之第八课

2021-04-01 19:02发布

一、String类

string 类型的变量当值改变时会在内存中新开辟一块空间.当频繁地修改     
string变量的值时,会额外开辟很多空间容易造成内存溢出
string str1 = "大黄";
Console.WriteLine(str1[0]);
foreach (var item in str1)
{
    Console.WriteLine(item);
}


string str = "今天真吵,还是早点干饭吧!";
检查字符串中是否包含所属子字符串,包含返回true,否则false
Console.WriteLine(str.Contains("干饭"));
如果匹配成功,那么返回子字符串在第一次发现位置的索引
Console.WriteLine(str.IndexOf("真吵"));
检查字符串是否包含子字符串,包含返回true,否则返回false
 在C#中,可以使用字符数组来表示字符串,但是更常见的做法是使用string关键字来声明一个字符串变量,string关键字是System.String类的别名
 1.通过给string变量指定一个字符串
 2.通过使用string类构造函数
 3.通过使用字符串串联运算符(+)
 4.通过检索属性或调用一个返回字符串的方法
 5.通过格式化方法来转换一个值或对象为它的字符串表示形式


二、 StringBuilder类

string对象时不可改变的,每次使用Sytem.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.
可以使用System.Text.StringBuilder类,例:当在一个循环中将许多字符串链接在一起时,使用StringBuilder类可以提高性能

StringBuilder sb1 = new StringBuilder("hello world");
sb1.Capacity = 20;//设置其容量为20
StringBuilder sb2 = new StringBuilder();
StringBuilder sb3 = new StringBuilder("hello world", 100);

Append(附加,增补):此方法用来将文本或对象的字符串表示形式添加到当前
stringBuilder对象表示的字符串结尾处.
StringBuilder MyStringBuilder = new StringBuilder("hello World!");
MyStringBuilder.Append("What a beautiful day.");
Console.WriteLine(MyStringBuilder);

AppendFormat  用带格式文本替换字符串中传递的格式说明符.
int MyInt = 25;
StringBuilder MyStringBuilder = new StringBuilder("Your total is");
MyStringBuilder.AppendFormat("{0:C}", MyInt);
Console.WriteLine(MyStringBuilder);

Insert   将字符串或对象插入到当前StringBuilder对象的指定索引处
StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Insert(6, "Beautiful");
Console.WriteLine(MyStringBuilder);

Remove  从当前StringBuilder对象中移除指定数量的字符.
StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Remove(5, 7);
Console.WriteLine(MyStringBuilder);

Replace   替换指定索引处的指定字符
StringBuilder MyStringBuilder = new StringBuilder("Hello World!");
MyStringBuilder.Replace("!", "?");
Console.WriteLine(MyStringBuilder);

实例化时会首先开辟16个字符,如果通过Append方法拼接字符串,当超过容量时,StringBuilder会成倍地向上开辟空间,当字符串比较大时,不建议使用.
使用情况:
如果希望在设计时对字符串进行未知的修改时使用
StringBuilder builder = new StringBuilder();
ShowSBInfo(builder);
builder.Append("hao hao xue xi,tian tian xiang shang!");
ShowSBInfo(builder);

三、重载

如果多个方法的名字不一样,但是参数或者个数不一样,那么就是方法的重载
注意:返回值不一样不能构成重载


四、递归

 public  int Num(int n)
 {
     if (n == 0) return 0;
     n = n - 1;
     return Num(n);
 }

Tool tool = new Tool();
tool.Num(5);

心得体会:

      暂无!!!