문제
설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.
내 풀이
import java.util.Scanner;
public class Main1_9 {
public int Solution(String s) {
int answer = 0;
s = s.toUpperCase().replaceAll("[A-Z]", "");
answer = Integer.parseInt(s);
return answer;
}
public static void main(String[] args) {
Main1_9 T = new Main1_9();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(T.Solution(str));
}
}
8. 유효한 팰린드롬 문제에서 나왔던 replaceAll() 함수를 기억해서 적용했다.
https://rookie-programmer.tistory.com/21
[JAVA] 자바 replace와 replaceAll 차이점 사용법
설명 replace는 문자 -> 문자 혹은 문자열 -> 문자열로 치환해주는 메소드이고 replaceAll은 replace 역할도 하지만, "정규식"을 사용해서 좀 더 효율적으로 문자열을 바꿀 수 있다. 예시 public class example.
rookie-programmer.tistory.com
선생님 풀이
import java.util.Scanner;
public class Main1_9 {
public int Solution(String s) {
String answer = "";
for(char x : s.toCharArray()) {
if(Character.isDigit(x)) answer += x;
}
return Integer.parseInt(answer);
}
public static void main(String[] args) {
Main1_9 T = new Main1_9();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(T.Solution(str));
}
}
결과
알게된 점
1. Character.isDigit()
https://rookie-programmer.tistory.com/16
[JAVA] 자바 Character.메소드 정리
설명 특정 문자가 대문자인지, 소문자인지, 숫자인지, 영문자인지 확인하거나 (참이면 true, 거짓이면 false 반환) 대문자 혹은 소문자로 변환할 때 사용합니다. 예시 Character.isUpperCase() : 특정 문자
rookie-programmer.tistory.com
'Algorithm > Inflearn' 카테고리의 다른 글
[Inflearn] 자바 알고리즘 문제풀이 #01-11 11. 문자열 압축 (0) | 2022.11.04 |
---|---|
[Inflearn] 자바 알고리즘 문제풀이 #01-10 10. 가장 짧은 문자거리 (0) | 2022.11.02 |
[Inflearn] 자바 알고리즘 문제풀이 #01-08 8. 유효한 팰린드롬 (0) | 2022.10.31 |
[Inflearn] 자바 알고리즘 문제풀이 #01-07 7. 회문 문자열 (0) | 2022.10.27 |
[Inflearn] 자바 알고리즘 문제풀이 #01-06 6. 중복문자제거 (0) | 2022.10.26 |