배열요소 비교

2009. 5. 15. 01:13 from JSP
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 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(".")));
*/
처럼 변경이 가능합니다.
핵심은?

List인터페이스의 contains(object)로 내부요소비교가 가능하고

String[] 객체는 Arrays.asList(String[]객체) 함수를 통해 List 객체로 변환되고

List 객체는 내부함수인 List객체.toArray(); 함수를 사용해 object[] 형식으로 변환됩니다.

Posted by 윤재현 :