IT•개발 끄적/개발
[개발][Java] 문자열에 다른 문자열 포함 method 생성하기(eq. JavaScript includes())
소다맛사탕
2023. 9. 25. 15:05
반응형
안녕하세요. 소다맛사탕 입니다.
javaScript에서 특정 변수에 포함된 값을 찾기위해 == 이나 indexOf 방식이 아닌 includes() 자주 사용했는데요.
Java에서도 이와 비슷하게 사용하기 위해 특정 메서드를 구현해 보았습니다.
javaScript includes와 같은 기능을 사용하기 위한 정적 메서드 구현
// 재정의
public static usedItems useItemFlag(String test) {
return new usedItems(test);
}
public static class usedItems { // static class 정의
private String value;
public usedItems(String value) { // 기본 생성자
this.value = value;
}
// String 배열 타입의 arguments(몇개일지 모르는 매개변수를 선언해도 가능)
// 포함이라면
public boolean in(String ... values) {
for(String str : values) {
if(str.equals(value)) return true;
}
return false;
}
// 미포함이라면
public boolean notIn(String ... values) {
for(String str : values) {
if(str.equals(value)) return false;
}
return true;
}
}
사용 방법 ;
1. 포함 : useItemFlag(특정 문자열 객체).in(특정 문자열 객체에 포함된 문자)
2. 미포함 : useItemFlag(특정 문자열 객체).notIn(특정 문자열 객체에 포함하지 않을 문자)
테스트 ex) ;
String str01 = "AB01";
String str02 = "AB02";
String str03 = "AB03";
// str01에 AB01이 선언되어 있으므로 true
if(useItemFlag(str01).in("AB01", "AB02", "AB03"){
// true
}
// str03에 선언되어 있지 않으므로 false
if(useItemFlag(str03).in("AB04", "AB05", "AB06"){
} else {
// false
}
// str03에 선언되어 있지 않은 값이 맞으므로 true
if(useItemFlag(str03).notIn("AB04", "AB05", "AB06"){
// true
}
// str01에 AB01이 포함되지 않는 비교를 했으므로 false
if(useItemFlag(str01).notIn("AB01", "AB02", "AB03"){
} else {
// false
}
기존 특정 문자열을 찾는건 많으나
이를테면 String에서 제공하는 contains() 메서드나 indexOf() 메서드가 있지만
보기는 특정 문자열 객체가 단순하게 선언되어 있지만, 여러개의 값이 넘어오는 데이터일 때는
여러 데이터 군을 비교하기 위해 만든 메서드이므로 해당 메서드는 유용하게 쓰일 수 있습니다.