美文网首页
方法的重载和递归

方法的重载和递归

作者: TALY | 来源:发表于2017-12-06 16:20 被阅读0次

不可变类型string

string 类型表示一个字符序列(零个或更多 Unicode 字符)。 string 是 .NET Framework 中 String的别名。尽管string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象的值(而不是引用)。 这使得对字符串相等性的测试更为直观。

但是这个string是只读的 无法修改其数组中的元素;

[] 运算符可以用于对 string 的各个字符的只读访问。

字符串方法

Contains()

返回一个值,该值指示指定的子串是否出现在此字符串中。

例子:

string name="LanOukeji";

if(name.Contains("Lanou")){

console.writeline("包含");

}else{console.writeline("不包含");}

IndexOf(String)

报告指定字符串在此实例中的第一个匹配项的从零开始的索引。(是连续的匹配)

例子:

string name="LanOukejiLanLanLan";

int a=name.IndexOf("Lan")

//这里会输出第一个匹配的lan的第一个字母l的数组位置。

LastIndexOf(String)

报告指定字符串在此实例中的最后一个匹配项的从零开始的索引的位置。

string name="LanOukejiLanLanLan";

int a=name.LastIndexOf("Lan")

//这里会输出最后一个匹配的lan的第一个字母l的数组位置。

PadLeft(Int32)

返回一个新字符串,该字符串通过在此实例中的字符左侧填充空格来达到指定的总长度,从而实现右对齐。

string newname=name.padleft(20);//右对齐位数不足用空格补满

Remove(Int32,Int32)

返回指定数量字符在当前这个实例起始点在已删除的指定的位置的新字符串。

string newname=name.remove(3,3);//从下标3开始删除3个字符

如果“,”后不写数字则默认后面都删掉

console.writeline(str);

Replace(String,String)

返回一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定的字符串。

string str=name.replace("lan","蓝");

Split(Char[])

返回的字符串数组包含此实例中的子字符串(由指定 Unicode 字符数组的元素分隔)。

string[] strarr=name.Split(' ');

for(int i=0;i< strarr.length ;i++){

console.writeline(strarr[i]);

}

StringBuilder

String对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。如果需要多次修改,String得开销是非常大滴!

于是有了System.Text.StringBuilder类。

StringBuilder对象是动态对象,长度是可变的,如果需要多次修改字符串,使用StringBuilder可以大大提升效率。

首先需要申明usingSystem.Text;

装箱与拆箱

把值类型转换成引用类型,称为装箱

打印结果为10,a已经被隐式的转成了object类型//obj是所有类的基类;

把引用类型转换成值类型,称为拆箱

打印结果为10,把obj强制转换成int类型并赋值给b

重载

方法重载实际上是方法名重载,即支持多个不同的方法采用同一名字。

例如:int Abs(int n){}

float Abs(float f){}

double Abs(double d){}

实现方法的重载

首先,方法名必须相同,

其次,参数必须不同,至少是以下两种情况之一:

参数表中对应的参数类型不同;

参数表中参数个数不同;

递归

方法实现体内再次调用方法本身。这种调用方式称为递归

调用。

在计算机中阶乘就可以使用递归调用。5!

注意:递归一定要有出口。

实例:

1.斐波那契数列

第n个数字等于前两个数字的和:N=(N-1)+(N-2)

public int Fibonacci (int n)

{

if(n<0) return -1;

if(n==0) return 0;

if(n==1) return 1;//这几个if表示的是最初的几项可能的情况

return Fibonacci (n-1)+Fibonacci(n-2);

}

2.阶乘

public int Factorial (int n)

{

int sum=0;

if(n==0) {return 1;}

else{sum = n * Factorial (n - 1);}

return sum;

}

相关文章

  • 方法的重载和递归

    不可变类型string string 类型表示一个字符序列(零个或更多 Unicode 字符)。 string 是...

  • Day06。方法和函数。解决n的阶乘问题

    方法,即函数的定义格式 方法的重载,方法的传值,方法的递归 类和对象的关系,对象的内存存储 成员变量和局部变量的区别

  • JavaSE之方法

    五、方法 目录:何谓方法、方法的定义及调用、方法重载、命令行传参、可变参数、递归 1.什么是方法? Java方法是...

  • Java方法详解以及变量

    目录: 方法递归方法:方法重载:变量 方法 方法的所属性 从语法定义的角度来看,方法必须定义在类中。 方法到底是属...

  • 方法重载与方法重写(@Overload @Override)

    java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,...

  • JAVA方法重载与方法重写辨析

    一、重载(overload)和重写(override)的区别?重载的方法能否根据返回类型进行区分? 方法的重载和重...

  • 方法/方法的重载/可变个数的形参

    递归:方法A中又调用方法A 方法中不能再定义方法! 方法的重载 可变个数的形参 可变个数形参的方法与本类中方法名相...

  • JVM方法调用

    方法重载和方法重写多态是面向对象程序设计的重要特性,方法重载和方法重写是Java语言实现多态的主要形式。方法重载指...

  • 2019-03-08

    方法 1.方法的执行过程中的内存分析 2.方法的重载机制 3.方法的递归调用 内存分析 方法区内存:代码片段——S...

  • 004-方法,方法的递归,方法的重载

    方法 什么是方法 为什么要用方法 方法的组成部分 方法的定义无参数,没有返回值的方法关门方法有参数,没有返回值的方...

网友评论

      本文标题:方法的重载和递归

      本文链接:https://www.haomeiwen.com/subject/paykixtx.html