인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 강의를 보고 문제 해설을 작성해보았습니다.
섹션1. String(문자열)의 9. 숫자만 추출 강의편 입니다.
설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 숫자만_추출 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
solution(str);
}
public static void solution(String str){
String strNum = str.replaceAll("[^0-9]", "");
int intNum = Integer.parseInt(strNum);
System.out.println(intNum);
}
}
>> 해설
버퍼를 통해 문자열을 읽어 들이고 solution() 메서드를 호출하면서 매개변수로 전달합니다.
문제에서 문자열이 주어지면 그 중 숫자만 추출하라고 하였으므로 정규식 사용이 가능한 replaceAll()을 통해서 숫자가 아닌 값을 빈값으로 치환하는 작업을 해줍니다.
str.replaceAll("[^0-9]", "");
해당 코드는 str 문자열 중 0부터 9까지 숫자가 아닌 값을 ""(공백)으로 바꾸라는 의미입니다.
그리고나서 추출한 값을 자연수로 만들라고 하였으므로 Integer.parseInt()를 통해 문자열을 정수로 변환시켜 intNum에 저장합니다.
최종적으로 intNum을 출력하여 줍니다.
'Computer Science > Algorithm' 카테고리의 다른 글
[Inflearn] 문자열 압축 (0) | 2022.11.13 |
---|---|
[Inflearn] 가장 짧은 문자거리 (0) | 2022.11.12 |
[Inflearn] 팰린드롬 (0) | 2022.11.05 |
[Inflearn] 회문 문자열 (0) | 2022.11.04 |
[Inflearn] 중복 문자 제거 (0) | 2022.11.02 |