2021 Aug. 15.
kotlinで、ファイル拡張子が複数の検索拡張子のいずれかに該当するかを、大文字小文字を区別せずに調べる
val strTarget: String = "FILENAME.m4a" val strExtension: String = "\\.mp3|\\.wav|\\.aac|\\.au|\\.gsm|\\.m4a|\\.ogg|\\.mkv|\\.3gp|\\.flac" isMatchTail(strTarget, strExtension) /* * target文字列の一番後ろのピリオド以降にconditionStr正規表現文字列が含まれていればtrueを返す */ private fun isMatchTail(target: String, conditionStr: String): Boolean { // target中の一番後ろのピリオド(ファイル拡張子の区切り)の場所を検出する val idxStr = target.lastIndexOf(".") if (idxStr < 0) { return false } // targetから、ピリオドから末尾までの文字列を切り出す val extenStr = target.substring(idxStr) // 切り出した文字列がconditionStrに一致するか調べる val regex = (conditionStr+"$").toRegex(RegexOption.IGNORE_CASE) return regex.containsMatchIn(extenStr) }