我有一個文件名和一個擴展名列表。我想檢查文件名是否以我擁有的列表中的任何擴展名結尾。如何檢查字符串是否以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