Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- SSAFY
- 백양로브레이크
- 타도
- 타겟넘버
- git
- K번째수
- 2579
- SWEA
- 10580번
- 11562
- django
- Java
- 명령어
- 그래프adt
- 알고리즘
- 특정인덱스바꾸기
- 진수 int형으로
- 시작
- 백준
- 스타일리쉬들여쓰기
- 프로젝트
- 객체정렬
- 7699
- startswith
- 전화번호목록
- 프로그래머스
- 완주하지못한선수
- toCharArray()
- 자바
- 단어변환
Archives
- Today
- Total
합리적 낙관주의자
[Java] String에 숫자가 포함되어 있는지 판별하는 방법 본문
Java에서 String에 숫자가 포함되어 있는지 확인하는 방법은 여러 가지가 있다.
아래 방법 중, 제일 많이 쓰이는건 정규식과 Character.isDigit 이라고 한다. 두 가지 모두 알고 있어 알고리즘에 용이하게 사용하자.
방법 | 장점 | 단점 |
정규식 matches | 코드 간결, 직관적 | 정규식에 익숙해야 함 |
Character.isDigit | 커스텀 로직 구현 용이 | 루프 필요 |
Stream API | 코드 간결, Java API | Java 8 이상 필요 |
Pattern/Matcher | 정규식 재사용에 효율적 | 코드 복잡 |
replaceAll | 간단한 비교 | 비효율적 |
1. 정규식 (Regular Expression)
정규식을 이용하여 문자열에 숫자가 하나라도 포함되어 있는지 확인하는 방법
String.matches() 메서드를 활용하며, 패턴은 .*[0-9].* 또는 .*\\d.*를 사용
String str = "abc123";
boolean hasNumber = str.matches(".*[0-9].*"); // true
// 또는
boolean hasNumber = str.matches(".*\\d.*"); // true
2. Character 클래스의 isDigit()
문자열을 문자 배열로 변환한 후, 각 문자에 대해 Character.isDigit()을 사용하여 숫자인지 확인하는 방법
for문을 돌며 확인하고, 숫자 있을 시에 break으로 루프를 빠져 나올 수 있다.
String str = "abc123";
boolean hasNumber = false;
for (char c : str.toCharArray()) {
if (Character.isDigit(c)) {
hasNumber = true;
break;
}
}
3. Java 8 Stream API
Java 8 이상에서는 Stream API를 활용
String str = "abc123";
boolean hasNumber = str.chars().anyMatch(Character::isDigit); // true
4. Pattern 및 Matcher
java.util.regex.Pattern과 Matcher를 사용하며, 정규식을 반복적으로 사용할 경우 이 방법이 효율적이다.
import java.util.regex.*;
String str = "abc123";
Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher(str);
boolean hasNumber = matcher.find(); // true
5. replaceAll()
문자열에서 숫자를 모두 제거한 뒤, 길이 차이를 비교하여 숫자 포함 여부를 알 수 있는 방법
String str = "abc123";
boolean hasNumber = str.length() != str.replaceAll("\\d", "").length(); // true
'Computer Thinking 🌟 > Self study 📖' 카테고리의 다른 글
빅데이터 (0) | 2020.08.31 |
---|---|
자바 .toCharArray() (0) | 2020.08.27 |
맨날 헷갈리는 Comparable, Comparator (0) | 2020.08.27 |
자바 문자열 특정 인덱스의 값 바꾸기 (0) | 2020.05.04 |
2진수 ... n진수 숫자로 바꾸기 : 자바 (0) | 2020.05.03 |