我的代码只接受.bmp
格式的图片
String format="";
if(pic_sel_file.toLowerCase().endsWith(".bmp"))
format="BMP";
如何更改此代码以便它可以接受任何文件格式的图像(.jpg,.tif等)?
答案 0 :(得分:4)
为避免使用多个 if-then-else 语句,您可以使用正则表达式在文件扩展名类型列表上进行匹配。 endsWith
不接受正则表达式,所以你可以这样做:
Matcher m = Pattern.compile("(?i).*\\.(bmp|gif|jpg|tif)$").matcher(pic_sel_file);
if (m.matches()) {
format = m.group(1).toUpperCase();
}
(?i)
忽略案例
\\.
转义后的点字符
(bmp|...
图片类型
$
行尾
答案 1 :(得分:1)
如果你想避免使用regexp,你可以使用一个集合并循环它:
List<String> allowedFileEndings = Arrays.asList("bmp", "png", "gif"); //or array
for (String allowedFileEndingsItem : allowedFileEndings) {
if(pic_sel_file.toLowerCase().endsWith(allowedFileEndingsItem)) // or "." + allowedFileEndingsItem
{
format = allowedFileEndingsItem; // uppercase if you want
break;
}
}
我甚至会考虑使用enum作为文件格式,这可以使格式处理的生活更轻松。
答案 2 :(得分:0)