- 直接上菜
在日常的开发中,我们的业务有时候多少会涉及文件相关的操作,今天记录一下子在我开发中获取文件名后缀的方法!
赶时间的直接上代码、出结果,后面直接略过吧!
String filename = "myFilename.pdf";
String substring = filename.substring(filename.lastIndexOf('.'));
System.out.println("substring = " + substring);
结果是:
substring = .pdf
- 说明
在java的API文档中写着一个String的substring(int beginIndex)方法,以下是该方法的源码:
public String substring(int beginIndex) {
if (beginIndex < 0) {
throw new StringIndexOutOfBoundsException(beginIndex);
}
int subLen = value.length - beginIndex;
if (subLen < 0) {
throw new StringIndexOutOfBoundsException(subLen);
}
return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
}
方法说明:返回一个新的字符串,它是此字符串的一个子字符串。该子字符串从指定索引处的字符开始,直到此字符串末尾。
示例:
"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
前面都是校验参数,主要实现功能的这一句,也是调用String自带的方法,
return (beginIndex == 0) ? this : new String(value, beginIndex, subLen);
其实还是调用数组的方法截取出来的:我就还是不套娃了;
Arrays.copyOfRange(value, offset, offset+count);
public int lastIndexOf(int ch);
方法说明:返回指定字符在此字符串中最后一次出现处的索引。对于 0 到 0xFFFF(包括 0 和 0xFFFF)范围内的 ch 的值
public int lastIndexOf(int ch) {
return lastIndexOf(ch, value.length - 1);
}