我有一个文件名和一个扩展名列表。我想检查文件名是否以我拥有的列表中的任何扩展名结尾。如何检查字符串是否以Java中字符串列表中的任何条目结尾
String fileName = "abc.txt";
String[] extensions = {".txt", ".doc", ".pdf"};
我可以手动检查扩展名列表并检查文件是否以列表中的任何扩展名结尾。
public static boolean checkIfFileHasExtension(String s, String[] extn) {
for (String entry : extn) {
if (s.endsWith(entry)) {
return true;
}
}
return false;
}
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
String fileName = "abc.txt";
String[] extensions = {".txt", ".doc", ".pdf"};
System.out.println(checkIfFileHasExtension(fileName, extensions));
}
有更好的方式使用StringUtils或Streams或任何其他Java库吗?我正在寻找一个单线。谢谢!
对于一次性的文件名和扩展名的合理数量来标记,你可能不会得到在实践中更好的解决方案比你拥有的还要多。 (不要担心试图使它成为一个单行:明确的代码比短代码更好。)也就是说,我认为在一般情况下,针对这类问题的最佳算法是构建后缀树并进行测试反对。 –
请解释downvote的原因? – Anit
@DanielPryden感谢您的建议! – Anit