728x90
반응형
설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.
예시 입력 1
g0en2T0s8eSoft
예시 출력 1
208
정답 및 해설
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//입력값을 받기 위한 스캐너
Scanner sc = new Scanner(System.in);
//받은 값을 str에 저장
String str = sc.next();
//정답을 출력할 answer
String answer = "";
//입력받은 값에 숫자를 제외한 전부 다 삭제
//정규식에서 ^는 부정을 뜻해서 ^0-9는 0부터 9까지가 아닌걸 의미
str = new StringBuilder(str).toString().replaceAll("[^0-9]", "");
//str에 첫번째가 0이 아니면 answer에 첫번째 글자를 더함
if (str.charAt(0) != '0'){
answer += str.charAt(0);
}
//위에서 0번째는 걸렀으므로 첫번째부터 마지막까지 반복문을 통해 answer에 더함
for (int i = 1; i<str.length(); i++){
answer += str.charAt(i);
}
//정답 출력
System.out.println(answer);
}
}
정답 및 해설2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//입력값을 받기 위한 스캐너
Scanner sc = new Scanner(System.in);
//받은 값을 str에 저장
String str = sc.next();
//정답을 출력할 answer
String answer = "";
//Character.isDigit를 이용해서 숫자만 answer에 누적시킴
for (char x : str.toCharArray()) {
if (Character.isDigit(x)) {
answer += x;
}
}
//첫글자가 0이면 없애기 위해서 Integer.parseInt를 이용해 형변환
System.out.println(Integer.parseInt(answer));
}
}
게시글이 도움이 되었다면
[로그인]이 필요 없는 ❤ 눌러주세요:)
반응형
'Java 알고리즘' 카테고리의 다른 글
[Java] 코딩테스트 입문 - 두 수의 합 (2) | 2024.01.13 |
---|---|
[Java] 피보나치 수열 (0) | 2023.08.17 |
[Java | 알고리즘] 08. 유효한 팰린드롬 / 정답 및 해설 / replaceAll() , toUpperCase() 사용 (0) | 2023.01.18 |
[Java/알고리즘] 07 회문 문자열 정답 및 해설 (0) | 2023.01.15 |
[Java/알고리즘] 06 중복문자제거 정답 및 해설 (0) | 2023.01.14 |