AI智能
改变未来

2020.7.24 字符串的方法 StringBuilder类 System.Format 方法的重载 方法递归

day9

字符串

string 是引用类型但是非常特殊

字符串可以当做数组使用

string str =\"abcde\";Console.WriteLine(str[0]);//\'a\'

↑只能读不能写

字符串可以进行 + +=运算

string str =\"abc\";str += \"a\";

string.Compare//比较判断

string str = \"abcDef\";int n = string.Compare(str, \"AbcDef\");Console.WriteLine(n);

Contains//判断是否包含

bool a= str.Contains(\"bc\");Console.WriteLine(a);

//删除

str = \"abcde\";str = str.Remove(3,1);//索引号第三个开始,删一个Console.WriteLine(str);

//合并

str = String.Concat(\"sadiu\",\"wduhw\");Console.WriteLine(str);

//拷贝 要拷贝的字符串起始索引 目标数组 目标索引号 长度

str = \"abcde\";char[] cs = new char[10];str.CopyTo(1,cs,0,3);cs[1] = \'z\';Console.WriteLine(cs);

//查找字符串返回索引

str = \"abcdefg0\";n = str.IndexOf(\"bc\");Console.WriteLine(n);

//查找任意字符串返回索引 indexOfAny大括号内元素顺序没关系,索引到靠前的一个就结束

str = \"abvdef\";n = str.IndexOfAny(new char[] { \'b\',\'v\'});Console.WriteLine(n);str = \"abvdef\";n = str.IndexOfAny(new char[] { \'b\',\'v\'});Console.WriteLine(n);

//插入

str = \"abfeg\";str= str.Insert(1,\"0....0\");//插入到索引1的位置Console.WriteLine(str);

//合并字符串数组 字符串 分隔符 字符串

str = string.Join(\",\",new string[] { \"abc\",\"bcd\"+\"efg\"});Console.WriteLine(str);

//查找字符串,返回最后一次出现的位置索引

str = \"awudihfiejsadhi\";n = str.LastIndexOf(\"i\");Console.WriteLine(n);

//左侧填充空格 右对齐

str = \"abvde0\";str = str.PadLeft(10);Console.WriteLine(str);

//右侧填充空格,左对齐

str = str.PadRight(2);

//替换

str = \"abcdefg\";str = str.Replace(\"bc\", \"aa00\");//什么,替换成什么Console.WriteLine(str);

//拆分

str = \"abc,def,grk\";String[] strs = str.Split(\',\');Console.WriteLine(strs[1]);

//截取字符串

str = \"abcdef\";str = str.Substring(1, 3);Console.WriteLine(str);

//转换成小写-大小写不区分

str = \"YEYUshengfan\";str = str.ToLower();Console.WriteLine(str);

//转换成大写

str = str.ToUpper();Console.WriteLine(str);

//删除首尾空白

str = \"   asfw    \";str = str.Trim();Console.WriteLine(str);

//字符串修改 StringBuilder 类

StringBuilder sb = new StringBuilder(\"啊这 \");sb.Append(\"饿了.jpg \").Append(\"中午吃啥?\");//追加sb.Insert(3,\"000000000\");//插入sb.Remove(3, 9);//删除sb.Replace(\"饿了\",\"困了\");//修改Console.WriteLine(sb.ToString());//转换成普通字符串

//System.Format

string str1 =string.Format(\"{0:N1}\",56789);//result:56,789.0string str2 =string.Format(\"{0:N2}\",56789);//result:56,789.00string str3 =string.Format(\"{0:N3}\",56789);//result:56.789.000string str4 =string.Format(\"{0:F1}\",56789);//result:56789.0string str5 =string.Format(\"{0:F2}\",56789);//result:56789.00\"{0:c}\",0.2     //result ¥0.20→英文操作系统是$0.20\"{0:D3}\",23      //result 023\"{0:P}\",0.24583  //result 24.58%  默认保留两位小数\"{0:P1}\",0.24583//result 24.6%  四舍五入保留一位小数

方法重载

同一个类中方法同名参数不同 根据传入的参数判断是哪个方法
1.参数类型不同
2.参数个数不同
3.参数的类型和个数都不同

class Debug{public static void Log(string text){//静态方法可被类直接调用Console.WriteLine(text);Thread.Sleep(1000);}//颜色输出public static void Log(string text,ConsoleColor color,int time){//静态方法可被类直接调用//文本的颜色设定Console.ForegroundColor = color;//获取文本Console.WriteLine(text);//停顿时间Thread.Sleep(1000);//默认颜色设定是白色Console.ForegroundColor = ConsoleColor.White;}//输出public static void Log(string text,int time){//获取文本Console.WriteLine(text);//停顿时间Thread.Sleep(time);}}

方法的递归

我调我自己√
互相调用√
↑记得必须设置出口
典型例子:斐波那契数列

public static void test (int a,int b){int c = a + b;if (c<300){Console.Write(c+\",\");test(b, c);}}

↑这是300以内的

小练习
写一个递归方法,计算敌人满血66666每次被攻击39,几次攻击可以杀死敌人

public static int i=0;//在递归方法外设定一个i接收次数public static void Attack(int hp){if (hp>0){i++;Attack(hp-39);}else{Console.WriteLine(i);}}
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 2020.7.24 字符串的方法 StringBuilder类 System.Format 方法的重载 方法递归