String에서 Integer만 추출하는 방법을 소개합니다.
1. 정규표현식으로 Integer 추출
다음 코드는 정규표현식으로 Integer만 추출하는 코드입니다.
replace()
에 정규표현식과 정규표현식에 해당하는 문자와 변경할 String을 전달합니다.
fun main(args: Array<String>){
val str = "aaa1234, ^&*2233pp"
val number = str.replace("[^0-9]".toRegex(), "")
println(number)
}
Output:
12342233
"[^0-9]"
는 0~9의 숫자가 아닌 문자열을 의미합니다.
따라서, 숫자가 아닌 문자들을 공백(""
)으로 변경하라는 의미입니다.
다음 코드도 위와 동일한 결과를 출력합니다.
"[^\\d]"
는 "[^0-9]"
의 축약형으로 의미가 동일합니다.
fun main(args: Array<String>){
val str = "aaa1234, ^&*2233pp"
val number = str.replace("[^\\d]".toRegex(), "")
println(number)
}
Output:
12342233
2. 반복문으로 숫자 추출
다음 코드는 for문으로 숫자만 추출하는 코드입니다.
fun main(args: Array<String>){
val str = "aaa1234, ^&*2233pp"
var number: String? = ""
for (ch in str) {
if (ch.toInt() in 48..57) {
number += ch
}
}
println(number)
}
Output:
12342233
3. Stream으로 숫자 추출
다음 코드는 for를 사용하지 않고 Stream을 사용하여 숫자를 추출하였습니다.
import java.util.stream.Collectors
fun main(args: Array<String>){
val str = "aaa1234, ^&*2233pp"
val stream = str.chars()
val intStr = stream.filter { ch: Int -> ch in 48..57 }
.mapToObj { ch: Int -> ch.toChar() }
.map { obj: Char -> obj.toString() }
.collect(Collectors.joining())
println(intStr)
}
Output:
12342233
Loading script...
Related Posts
- Kotlin - 배열에서 최소 값, 최대 값 찾기
- Kotlin - 2차원 배열 선언, 초기화 방법
- Kotlin - 배열 선언, 초기화 방법
- Kotlin - 리스트, 배열 길이 가져오기
- Kotlin - 리스트에서 최대, 최소 값 찾기
- Kotlin - for 반복문, 배열/리스트 순회
- Kotlin - Timer, 주기적으로 함수 실행
- Kotlin - sleep, 쓰레드 몇 초 지연
- Kotlin - Thread 생성 및 실행
- Kotlin에서 정규표현식 사용하기
- Kotlin - 문자열 길이 계산
- Kotlin - 문자열 비교 방법(equals, ==, compareTo)
- Kotlin - 2개의 배열 하나로 합치기
- Kotlin - 2개의 List 하나로 합치기
- Kotlin - 디렉토리의 모든 파일 리스트 출력
- Kotlin - 리스트 정렬 방법 (sort, sortBy, sortWith)
- Kotlin - 문자열 뒤집기 (Reverse String)
- Kotlin - 랜덤 숫자 생성 (Random, SecureRandom)
- Kotlin - Range, 숫자 범위 표현
- Kotlin - 음수를 양수로 변환, math.abs()
- Kotlin - List를 Set로 변환
- Kotlin - Set를 List로 변환
- Kotlin - 문자열에서 숫자(int)만 추출하는 방법
- Kotlin - Map을 List로 변환하는 방법
- Kotlin - File, Directory가 존재하는지 확인
- Kotlin - List를 Map으로 변환
- Kotlin - List의 중복 요소 제거
- Kotlin - List를 Array로 변환
- Kotlin - 엘비스 연산자 (Elvis Operation)
- Kotlin - Array를 List로 변환
- Kotlin - String을 Float으로 변환
- Kotlin - String을 Double으로 변환
- Kotlin - String을 Int로 변환
- Kotlin - String을 Long으로 변환
- Kotlin - String Null 또는 Empty 체크