본문 바로가기
알고리즘(Java)/String

[알고리즘]String(문자열) 9. 숫자만 추출 - 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출해 자연수 만들기

by snowballchoi 2021. 7. 17.
9. 숫자만 추출
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만드는 프로그램
입력) 첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력) 첫 줄에 자연수를 출력합니다.

 

 

1. 아스키 코드 이용

import java.util.Scanner;

public class Main {
	
	public static int solution(String str) {
		int answer = 0;
		
		for(char x : str.toCharArray()) {
			// 0~9의 아스키코드값 : 48~57
			if (x>=48 && x<=57) answer = answer*10 + (x-48);
		}
        
		return answer;
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String str = scanner.next();	
		System.out.println(solution(str));
	}

}

 

2. Character.isDigit() 이용

import java.util.Scanner;

public class Main {
	
	public static int solution(String str) {
		String answer = "";
		
		for(char x : str.toCharArray()) {
			if (Character.isDigit(x)) answer += x;
		}
		
		return Integer.parseInt(answer);
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String str = scanner.next();
		System.out.println(solution(str));
	}

}

 

3. replaceAll() 이용

import java.util.Scanner;

public class Main {
	
	public static int solution(String str) {
		String answer = "";
		
		answer = str.replaceAll("[^0-9]", ""); // 문자형 숫자가 아닌 것 제거
		return Integer.parseInt(answer);
	}

	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		String str = scanner.next();	
		System.out.println(solution(str));
	}

}

결과

입력
st0Ud93y0Ha12rd6

출력
930126

댓글