2020.7.24 字符串的方法 StringBuilder类 System.Format 方法的重载 方法递归
2020-07-24 21:08
363 查看
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.0 string str2 =string.Format("{0:N2}",56789);//result:56,789.00 string str3 =string.Format("{0:N3}",56789);//result:56.789.000 string str4 =string.Format("{0:F1}",56789);//result:56789.0 string 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); } }
相关文章推荐
- 字符串、方法的重载和递归
- C# 字符串、方法的重载和递归
- Java方法创建和重载、递归调用
- 方法,重载,递归的小结
- return语句、方法重载递归、数组
- Java编程中在子类重载方法中调用父类中该方法时,该方法包含递归时出现的调用错误
- C语言经典算法(六)——递归实现字符串长度的两种方法
- Java中方法的基本用法、重载和递归
- Java 深究字符串String类(2)之重写toString()方法无意识递归
- Java中方法的基本用法、方法重载、方法递归
- java:方法的内存分析,重载和递归
- C#--第2周实验--任务13--创建一个抽象类A,创建一个子类B,在B中重写求和方法,且使用方法重载使得方法可以分别计算整数、双精度、字符串。
- Javad 方法,方法的重载,递归,类,类的构造方法
- java中方法的定义和重载、简单递归
- 递归字符串截取方法
- 求字符串的全排列(递归方法)
- 方法 | 方法是什么、方法的重载、方法的递归
- 输入两个字符串,比如abdbcc和abc,输出第二个字符串在第一个字符串中的连接次序(递归方法)
- 用递归的方法实现字符串的反序输出
- Java基础10-方法的重载与递归