Algorithm/문제
9. 숫자만 추출
챛채
2023. 5. 23. 16:14
1. 아스키코드
answer값은 누적이 되어야하므로 answer = 0 0으로 초기화 하고 숫자0~9까지 아스키코드값은 48~57이므로 x>=48 && x<= 57이 참이면 answer = answer*10 +(x-48)을 해준다.
0 = 0 * 10 + 0
1 = 0 * 10 + 1
12 = 1 * 10 + 2
120 = 12 * 10 + 0
1205 = 120 * 10 + 5
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public int solution(String s) {
int answer = 0;
for (char x : s.toCharArray()) {
if(x>=48 && x<= 57) answer=answer*10+(x-48); //x-48을 해야 실제 숫자나옴 (0=48-48)
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
2. isDigit()
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public int solution(String s) { //맨처음 0을 제외해야하니까 정수로 받아야함
String answer = "";
for (char x : s.toCharArray()) {
if(Character.isDigit(x)) //숫자인가
answer+=x; //string으로 x누적
}
return Integer.parseInt(answer);
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.println(T.solution(str));
}
}
String을 parsent로 변경