goal
java.util.regex의 Pattern 클래스의 static method인 matches를 알아본다.
참고자료
java 1.8 documentation, https://docs.oracle.com/javase/8/docs/api/index.html
기타 사용법 : Pattern 어렵지 않게 사용하기, https://gngsn.tistory.com/53, pageseo
금일 페어프로그래밍을 하며 알게된 클래스
페어프로그래밍의 페어님께서 java도 정규 표현식을 나타낼 수 있다는 것을 알려주셨고,
우연히 Patten클래스를 알게 되어 작성한다. 언젠가는 써먹을 일이 있을거라 생각한다.
하 api 문서를 보고 작성해보려고 시도했으나 영어가 너무 부족하여 패스 공부해야겠다.
* Pattern 클래스
우선 정규표현식을 나타낼 때 쓰는 클래스로 보이며 구성자체는 아래와 같다.
public final class Pattern implements Serializable
final
이 붙은 class와 method는 상속과 오라이딩이 되지 않는다.
따라서, Pattern에 설계되어진 메소드 기능들은 그 자체로 써야한다. (불러와서 써야한다.)
Serializable
인터페이스도 어디선가 많이 본 애인데 아직은 궁금하지 않다.
1. Pattern 클래스의 static method인 matches()
matches()
메소드는 static 메소드로써, 인스턴스 생성없이 사용이 가능하다.
매개변수로 String regex
, CharSequence input
을 받게되는데
String regex
는 정규표현식이 들어가게 되고 CharSequence input
에는 String 타입
이 들어가 String의 하나 하나의 문자가 들어가게 된다. 정규표현식과 각 문자를 비교해 정규표현식에 일치하면 True, 일치하지 않는다면 False를 리턴한다.
[1] 사용예시
- PatternMatches.java
import java.util.regex.Pattern;
public class PatternMatches {
public static void main(String[] args){
String[] arr = new String[]{"12345", "31985djf"};
String regex = "[0-9]*$"; // 0에서 9까지 숫자가 모두 포함되면
for(String elem : arr) {
if(Pattern.matches(regex, elem)) {
System.out.println("elem의 각 값은 " + elem + "이며 모두 숫자입니다.");
} else {
System.out.println("elem의 각 값은" + elem + "이며 숫자가 아닌 값이 있거나 모두 숫자가 아닙니다.");
}
}
}
}
- PatternMatches.java [결과값]