.bmp
形式 の画像のみを受け入れるこのコードがあります
String format="";
if(pic_sel_file.toLowerCase().endsWith(".bmp"))
format="BMP";
このコードを変更して、任意のファイル形式 (.jpg、.tif など) の画像を受け入れるにはどうすればよいですか?
.bmp
形式 の画像のみを受け入れるこのコードがあります
String format="";
if(pic_sel_file.toLowerCase().endsWith(".bmp"))
format="BMP";
このコードを変更して、任意のファイル形式 (.jpg、.tif など) の画像を受け入れるにはどうすればよいですか?
複数の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|...
画像の種類
$
行の終わり
正規表現を避けたい場合は、コレクションを使用してそれをループできます。
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;
}
}
ファイル形式に列挙型を使用することも検討します。これにより、形式の処理が楽になります。