我必须在 Matlab 中编写一个程序,性能非常重要,因为它可以处理很多文件。
我必须找到文件名的最后一个文件扩展名并将其拆分。
例如file.name.tar.gz
应该分为file.name.tar
和gz
我确定了 3 种方法来做到这一点,但我不知道哪种方法最快。
1.
javaFilename = java.lang.String(fileName);
lastDot = javaFilename.lastIndexOf('.');
name = char(javaFilename.substring(0, lastDot-1));
ext = char(javaFilename.substring(lastDot+1));
2.
dots = findstr(fileName, '.');
lastDot = dots(length(dots));
name = fileName(1:lastDot-1);
ext = fileName(lastDot+1:end);
3.
[name tempExt] = strtok(fileName, '.');
while tempExt
[temp2 tempExt] = strtok(fileName, '.');
if tempExt
name = strcat(name, '.', temp2);
end
end
ext = temp2(2:end);
我认为第三个是最糟糕的。但是其他方法呢?你能想出比我描述的方法更快的方法吗?