algorithm
숫자만 추출
juuuuuuun
2024. 4. 28. 19:19
설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.
예시 입력 1
g0en2T0s8eSoft
예시 출력 1
208
소스코드 1
import java.util.Scanner;
public class Main {
public static String solution(String str) {
String answer = "";
StringBuilder ans = new StringBuilder();
for (int i = 0; i < str.length(); i++) { //str에서 숫자만 뽑아내 ans에 추가한다.
if ('0' <= str.charAt(i) && str.charAt(i) <= '9') {
ans.append(str.charAt(i));
}
}
while (ans.charAt(0) == '0') { // 맨 앞 자리수가 0이면 계속 삭제한다.
ans.deleteCharAt(0);
}
answer = ans.toString(); //String 타입으로 변환시켜 answer에 저장한다.
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(solution(str));
}
}
소스코드 2
import java.util.Scanner;
public class Main {
public static int solution(String str) {
int answer = 0;
for (int i = 0; i < str.length(); i++) {
if ('0' <= str.charAt(i) && str.charAt(i) <= '9') {
//이 식으로 맨 앞 숫자가 0이라면 없애는 계산이 가능해진다.
answer = answer * 10 + (str.charAt(i) - '0');
}
}
return answer;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(solution(str));
}
}