ファイル名と拡張子リストがあります。私はファイル名が私が持っているリスト内のいずれかの拡張子で終わるかどうかを確認したい。文字列が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ライブラリを使用してより良い方法がありますか?私は1つのライナーを探しています。ありがとう!
として
.
を使用してトークン化することで、あなたは実際にはよりよい解決策を取得する可能性じゃありませんあなたが持っているものよりも。つまり、この種の問題のための最良のアルゴリズムは、一般的なケースではサフィックスツリーを構築してテストすることであると私は信じています(これは1行にしようと心配しないでください。それに対して –downvoteの理由を説明してください? – Anit
@DanielPrydenご意見ありがとうございます! – Anit