2012-06-19 2 views
4

배열이 있습니다 배열에있는 경우 마지막 숫자를 확인하고 싶습니다.Java에서 String.endswith() 메서드 사용

예 :

String[] types = {".png",".jpg",".gif"} 

String image = "beauty.jpg"; 
// Note that this is wrong. The parameter required is a string not an array. 
Boolean true = image.endswith(types); 

주의 사항 : 내가 루프를 사용하여 각 개별 항목을 확인할 수 있습니다 알고 있습니다.

이 작업을 수행하는보다 효율적인 방법이 있는지 알고 싶습니다. 이유는 이미지 문자열이 이미 일정한 변화에 대한 루프에 있다는 것입니다.

String ext = image.substring(image.length - 4, image.length);

을 한 후 승인 파일 확장자의 목록에 있는지 확인하기 위해 HashMap 또는 다른 검색 구현을 사용

+1

정말로 부울을 "true"로 이름 지정 하시겠습니까? 아니면 몇 가지 데모 용입니까? – BlackVegetable

+0

@BlackVegetable –

+1

@GearsdfGearsdfas true는 Java에 의해 예약 된 키워드입니다. 그리고 어쨌든 아주 좋은 변수 이름은 아니며 설명 적이 지 않습니다. –

답변

12
Arrays.asList(types).contains(image.substring(image.lastIndexOf('.') + 1)) 
+0

심지어 내 것보다 간단합니다. :) asList는 실제로 배열을 매번리스트로 변환합니까? –

5

당신은 마지막 4 개 문자를 하위 문자열 수 있습니다.

if(fileExtensionMap.containsKey(ext)) {

0

사용 Arrays.asList는 목록에 변환합니다. 그런 다음 멤버십을 확인할 수 있습니다.

String[] types = {".png",".jpg",".gif"}; 
String image = "beauty.jpg"; 
if (image.contains(".")) 
    System.out.println(Arrays.asList(types).contains(
     image.substring(image.lastIndexOf('.'), image.length())));