본문 바로가기
Computer Science/Algorithm

[Inflearn] 숫자만 추출

by 코딩맛 2022. 11. 5.

인프런의 자바(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