- 자바에서 String이 numeric인지 확인하는 두 가지 방법 -
입력 받은 String이 숫자이면 이렇게 처리하고,
연산 기호면 저렇게 처리하려고 한다.
그러려면 우선 입력 받은 String이 숫자인지 아닌지 확인해야 한다.
- 방법1 -
Charactrer에는 숫자인지 확인하는 함수가 있다.
이 함수를 쓰려면 String을 한 글자씩 쪼개서
Character에 넣고 isDigit 함수를 한 번씩 돌려 봐야 한다.
예를 들어 아래와 같다.
String target = "1948172abc";
Boolean flag = true;
for(int i=0; i < target.length(); i++) {
if(!Character.isDigit(target.charAt(i))) {
result = false;
}
}
if(flag) {
System.out.println(target + " is number");
} else {
System.out.println(target + " is not number");
}
- 방법2 -
정규 표현식으로 확인하는 방법도 있다.
String에는 그 값이 주어진 정규식과 부합하는지 확인하는 함수가 있다.
String.matches(REGEX);
숫자를 정규 표현식으로 정의해 놓고,
그 정규 표현식을 파라미터로 넘겨주면 된다.
final String REGEX = "[0-9]+";
String target = "1948172abc";
if(target.matches(REGEX)) {
System.out.println(target + " is number");
} else {
System.out.println(target + " is not number");
}
개인적으로는 아래쪽 방법2가 훨씬 깔끔해 보이고
사고 방식도 편해서 더 많이 쓴다.
반응형
'Java' 카테고리의 다른 글
| [JAVA] while 문에서 애초에 조건을 만족하지 않는다면? (ft. while문 do while문 차이) (0) | 2022.03.19 |
|---|---|
| [JAVA] switch 문을 반복문으로 바꾸기 (0) | 2022.03.19 |
| [JAVA] 추상 클래스 인터페이스 차이점 / abstract class interface 사용법 (0) | 2022.03.19 |
| [JAVA] ConcurrentModificationException 의미와 해결 방법 (0) | 2022.03.19 |
| mybatis / servelet / jsp 등 개념 (0) | 2022.03.17 |