substring是取左不取右?并给结合以下代码进行解释String path = urisubstringurilastIndexOf urilastIndexOf;
是的,substring函数是取左不取右的,即取出字符串中从左边起始位置开始,不包括右边结束位置的子字符串。
对于给定的代码段: String path = uri.substring(uri.lastIndexOf("/"), uri.lastIndexOf("."));
该代码的作用是从一个URI字符串中提取出文件名(不包括文件扩展名)。
具体解释如下:
- uri.lastIndexOf("/"):查找uri字符串中最后一个"/"出现的位置,并返回该位置的索引值。该位置之后的部分即为文件名及其扩展名部分。
- uri.lastIndexOf("."):查找uri字符串中最后一个"."出现的位置,并返回该位置的索引值。该位置之前的部分即为文件名部分。
- uri.substring(uri.lastIndexOf("/"), uri.lastIndexOf(".")):根据上述两个索引值,截取uri字符串中位于最后一个"/"之后、最后一个"."之前的部分,即为文件名部分。
- 将截取得到的文件名部分赋值给变量path,供后续使用。
需要注意的是,如果uri字符串中没有"/"或".",则lastIndexOf函数会返回-1,substring函数会抛出异常。因此,在实际使用中,可能需要对这些情况进行额外的处理
原文地址: https://www.cveoy.top/t/topic/iRox 著作权归作者所有。请勿转载和采集!