我基本上是想在最后一个期间拆分字符串以捕获文件扩展名。但是有时候文件没有任何扩展名,所以我很期待。
但是问题是某些文件名像这样以结尾结尾。
/mnt/sdcard/OG Ron C, Chopstars & Drake - Choppin Ain't The Same-2013-MIXFIEND/02 Drake - Connect (Feat. Fat Pat) (Chopped Not Slopped).mp3
因此,当出现该字符串时,它将在“02 Drake-Connect(Feat。”
这就是我一直在使用的...
String filePath = intent.getStringExtra(ARG_FILE_PATH);
String fileType = filePath.substring(filePath.length() - 4);
String FileExt = null;
try {
StringTokenizer tokens = new StringTokenizer(filePath, ".");
String first = tokens.nextToken();
FileExt = tokens.nextToken();
}
catch(NoSuchElementException e) {
customToast("the scene you chose, has no extension :(");
}
System.out.println("EXT " + FileExt);
File fileToUpload = new File(filePath);
我如何在文件扩展名处拆分字符串,但是还可以处理和警告文件无扩展名的情况。
最佳答案
仅假设以点号和字母数字字符结尾的文件具有扩展名可能会更容易。
int p=filePath.lastIndexOf(".");
String e=filePath.substring(p+1);
if( p==-1 || !e.matches("\\w+") ){/* file has no extension */}
else{ /* file has extension e */ }
有关正则表达式模式,请参见the Java docs。记住要转义反斜杠,因为模式字符串需要反斜杠。