您的位置:首页 > 产品设计 > UI/UE

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);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: