ultra_dev
문자열. 숫자만 추출 본문
9. 숫자만 추출
설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.
예시 입력 1
g0en2T0s8eSoft
예시 출력 1
208
📌 아스키넘버를 활용한 방법
import java.util.Scanner;
class Main {
public int solution(String str) {
int answer = 0;
for (char x : str.toCharArray()) {
//아스키코드 48 -> 0 과 57 -> 9 알아두면 좋음
//만약 기존 대답이 2고 추가숫자가3이면 2*10하고 3추가
//그럼23이고 여기에 10곱하고 추가숫자가 4면 234되고 이런식!!
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.next();
System.out.println(T.solution(str));
}
}
📌 Character.IsDigit 활용! (숫자인지 확인하는 메소드)
📌Integer.ParseInt 활용하기! (0455같은 String문자를 455같은 숫자화해야하니)
import java.util.Scanner;
class Main {
public int solution(String str) {
String answer = "";
for (char x : str.toCharArray()) {
//Character 클래스 활용. isDigit 즉 x가 숫자냐는 메소드
if(Character.isDigit(x)) answer+=x;
}
//바로 return answer; 하면 0있으면 0208 이런 식으로 되니
//parse int 해줘야 208로 숫자화됨
return Integer.parseInt(answer);
}
public static void main (String[]args){
Main T = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
System.out.println(T.solution(str));
}
}
'알고리즘' 카테고리의 다른 글
문자열.문자열 압축 (0) | 2023.01.12 |
---|---|
문자열.가장 짧은 문자거리 (0) | 2023.01.12 |
문자열.유효한 팰린드롬 (0) | 2023.01.12 |
문자열.문장 속 단어(indexOf(),substring()) (0) | 2023.01.12 |
문자열.단어뒤집기 (0) | 2023.01.12 |
Comments