String(스트링) 09. 숫자만 추출
* 사용 언어 : JAVA
* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리
1. 문제
문자와 숫자가 섞여있는 문자열 중 숫자만 추출하여 주어진 순서대로 자연수를 출력
“tge0a1h205er”가 주어지면 숫자만 추출된이것의 자연수는 1205
// 입력
g0en2T0s8eSoft
// 출력
208
2. 풀이
(1) 아스키코드
answer은 int type으로 값을 누적시킨다.
아스키 코드 문자 '0'이 48이고, 문자 '9'가 57이다.
입력받은 문자열을 char 배열로 변환 후 for문을 돌려 char가 48 ~ 57 사이의 값일 경우에만
값이 누적되면서 한 자리씩 이동하기 때문에 answer * 10을 하고 char - 48을 더해준다.
(2) Stirng Method
Charactor 클래스의 isDigit() 메서드를 이용하면 해당 문자가 숫자인지 판별하고 boolean값을 반환한다.
주어진 문자열을 for문으로 돌며 isDigit() 메서드로 해당 문자가 숫자면 String type의 answere변수에 누적시킨다.
int형으로 반환되어야 하기 때문에 String을 int type으로 변환시키기 위해 Integer 클래스의 parseInt() 메서드를 사용한다.
3. 코드
(1)
public class Main {
public int solution(String str) {
int answer=0;
for(char x : str.toCharArray()) {
if (x >= 48 && x <= 57) answer = answer*10+(x-48);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(T.solution(str));
}
}
(2)
public class Main {
public int solution(String str) {
String answer=0;
for(char x : str.toCharArray()) {
if (Charactor.isDigit(x)) answer+=answer;
}
return Integer.parseInt(answer);
}
public static void main(String[] args) {
Main T = new Main();
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
System.out.println(T.solution(str));
}
}
4. Keword
- Integer
- parsInt
- Charactor
- isDigi
'Algorithm' 카테고리의 다른 글
[자바 알고리즘 문제풀이] Array 02. 보이는 학생 (0) | 2022.05.10 |
---|---|
[자바 알고리즘 문제풀이] Array 01. 큰 수 출력하기 (0) | 2022.05.09 |
[자바 알고리즘 문제풀이] String 08. 유효한 팰린드룸 (0) | 2022.03.07 |
[자바 알고리즘 문제풀이] String 07. 회문문자열 (0) | 2022.03.07 |
[자바 알고리즘 문제풀이] String 06. 중복 문자 제거 (0) | 2022.03.07 |