DB에 저장된 업로드허용 확장자 필드가 .gif|.jpg|.jpeg 로 구분되어 있을경우에 업로드되는 파일확장자명을 어떻게 비교하는게 편할지에 대해서 적습니다.
일반적으로
해서
처럼 변경이 가능합니다.일반적으로
String filename = "example.pdf";
String[] ext = {".gif",".jpg",".jpeg"}; // String[] ext = rs.getString("EXT").split("\\|");
boolean valid = false;
for( int i = 0; i < ext.length; i++ ){
if( ext[i].equals( filename.substring( filename.lastIndexOf(".") ) ) ){
valid = true;
}
}
위와같이 쓰면 for문이 거슬립니다.String[] ext = {".gif",".jpg",".jpeg"}; // String[] ext = rs.getString("EXT").split("\\|");
boolean valid = false;
for( int i = 0; i < ext.length; i++ ){
if( ext[i].equals( filename.substring( filename.lastIndexOf(".") ) ) ){
valid = true;
}
}
해서
String filename = "example.pdf";
String[] ext = {".gif",".jpg",".jpeg"};
boolean valid = Arrays.asList(ext).contains(filename.substring(filename.lastIndexOf(".")));
/*
boolean valid = Arrays.asList(rs.getString("EXT").split("\\|")).contains(filename.substring(filename.lastIndexOf(".")));
*/
String[] ext = {".gif",".jpg",".jpeg"};
boolean valid = Arrays.asList(ext).contains(filename.substring(filename.lastIndexOf(".")));
/*
boolean valid = Arrays.asList(rs.getString("EXT").split("\\|")).contains(filename.substring(filename.lastIndexOf(".")));
*/
핵심은?
List인터페이스의 contains(object)로 내부요소비교가 가능하고
String[] 객체는 Arrays.asList(String[]객체) 함수를 통해 List 객체로 변환되고
List 객체는 내부함수인 List객체.toArray(); 함수를 사용해 object[] 형식으로 변환됩니다.