설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.

풀이1
import java.util.Scanner;
class Main {
public int solution(String str) {
int answer = 0;
//문자 0 = 48, 9 = 57
//x >= 48 && x <= 57
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 sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(t.solution(str));
}
}
● 아스키 코드 문자(Char)
- x >= 48 && x <= 57 이면 숫자. 외워두기!

풀이2
import java.util.Scanner;
class Main {
public 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){
Main t = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(t.solution(str));
}
}
● Character.isDigit() : char값이 숫자인지 여부를 판단하여 true/false 리턴
- 주의! '97' 입력시 true, 97 입력시 false
<- > Character.isLetter() : char 값이 문자 인지 여부 판단 true/false 리턴
'코딩테스트 > basic' 카테고리의 다른 글
[JAVA]String11.문자열 압축 (0) | 2022.05.24 |
---|---|
[JAVA]String10.가장 짧은 문자 거리 (0) | 2022.05.24 |
[JAVA]String08.유효한 팰린드롬 (0) | 2022.05.18 |
[JAVA]String07. 회문 문자열 (0) | 2022.05.17 |
[JAVA]String06.중복 문자 제거 (0) | 2022.05.17 |