详解java中的String类的substring()方法

代码的倒数第四行:(取后缀名的substring()方法,因为是java的String类的方法,所以前面要写个String类来调用方法 originalFilename.substring(originalFilename.lastIndexOf(“.”)); )
image.png

substring()方法功能:

substring()方法是String类的一个方法,故该方法的调用者为String类的对象,即字符串
str.substring(indexStart,indexEnd)功能为:截取方法调用者(即str)的从indexStart到indexEnd(包括indexStart,不包括indexEnd;即含头不含尾、或左闭右开区间内的子字符串)。
举个例子:
程序1:
image.png
上面程序1输出的结果应该为:12。截取字符串str第1个位置到第3个位置之间的子字符串,含头不含尾,即包含第1个位置,而不包含第3个位置,因此结果为第12。

关于substring(indexStart,indexEnd)方法的补充说明:

1、如果indexStart等于indexEnd,substring()方法返回一个空字符串;
2、如果任一参数小于0,则被当做0;
3、如果任一参数大于str.lengtn(),则被当做str.lengtn()。
关于说明1,举个例子:
程序2:
image.png

上面程序2截取字符串”0123456789”的第1个位置到第1个位置的子串。由于substring()方法在截取字符串子串时,含头不含尾,即要包含第1个位置,又不能包含第1个位置,形成矛盾,故返回一个空字符串。
上述程序的结果为空字符串,如下图:
image.png
关于说明2:
由于字符串的起始位从0开始,若substring()方法任一参数小于0,则被当做0。
关于说明3:
程序3:
image.png

由于字符串str的长度为10(注意字符串从第0位开始计数,它的长度是其最后一位+1),而第2个参数是11,大于字符串的长度,则被当成字符串的长度10。故程序3的输出结果为完整字符串。
程序3的输出结果:
image.png

image.png