明确一点,我并不是在寻找MIME类型。

假设我有以下输入:/path/to/file/foo.txt

我想要一种方法来分解这个输入,特别是扩展为.txt。在Java中有任何内置的方法来做到这一点吗?我希望避免编写自己的解析器。


当前回答

// Modified from EboMike's answer

String extension = "/path/to/file/foo.txt".substring("/path/to/file/foo.txt".lastIndexOf('.'));

扩展应该有“.txt”在它运行时。

其他回答

如果你在项目中使用Spring框架,那么你可以使用StringUtils

import org.springframework.util.StringUtils;

StringUtils.getFilenameExtension("YourFileName")

这个特别的问题给了我很多麻烦,然后我找到了一个非常简单的解决方案,我张贴在这里。

file.getName().toLowerCase().endsWith(".txt");

就是这样。

在不使用任何库的情况下,你可以使用String方法,如下所示:

        String[] splits = fileNames.get(i).split("\\.");

        String extension = "";

        if(splits.length >= 2)
        {
            extension = splits[splits.length-1];
        }

如何(使用Java 1.5 RegEx):

    String[] split = fullFileName.split("\\.");
    String ext = split[split.length - 1];
// Modified from EboMike's answer

String extension = "/path/to/file/foo.txt".substring("/path/to/file/foo.txt".lastIndexOf('.'));

扩展应该有“.txt”在它运行时。