Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
자바 알고리즘 문제 풀이 String Q09_숫자만 추출 본문
728x90
설명
문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다.
만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다.
추출하여 만들어지는 자연수는 100,000,000을 넘지 않습니다.
입력
첫 줄에 숫자가 썩인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다.
출력
첫 줄에 자연수를 출력합니다.
예시 입력1
예시 출력g0en2T0s8eSoft 208
코드
내가 입력한 코드
package String; import java.util.Scanner; public class Q09 { public int solution(String str) { int answer = 0; char[] c = str.toCharArray(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < c.length; i++) { if(Character.isDigit(c[i])) { sb.append(c[i]); } } if(sb.charAt(0) == '0') { sb.deleteCharAt(0); } answer = Integer.parseInt(sb.toString()); return answer; } public static void main(String[] args) { Q09 T = new Q09(); Scanner kb = new Scanner(System.in); String str = kb.next(); System.out.println(T.solution(str)); } }
해설 코드import java.util.*; class Main { public int solution(String s){ //int answer=0; String answer=""; for(char x : s.toCharArray()){ //if(x>=48 && x<=57) answer=answer*10+(x-48); /*if(Character.isDigit(x)){ answer=answer*10+ Character.getNumericValue(x); }*/ if(Character.isDigit(x)) answer+=x; } return Integer.parseInt(answer); } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str=kb.next(); System.out.print(T.solution(str)); } }
풀이 및 정리
역시 이번문제에도 숫자를 판별해 줄 수 있는 메서드가 존재
=> Character.isDigit( ) 매개변수로 char값이 들어가고 숫자인지 판별해 true false 반환
=> Character.getNumbericValue( ) 매개변수로 char값이 들어가고 char형을 int형으로 변환
0~9까지 아스키 코드값 48부터 57까지
728x90
'ALGORITHM > inflearn_javaAlgorithm' 카테고리의 다른 글
자바 알고리즘 문제 풀이 String Q11_문자열 압축 (0) | 2022.02.04 |
---|---|
자바 알고리즘 문제 풀이 String Q10_가장 짧은 문자거리 (0) | 2022.02.03 |
자바 알고리즘 문제 풀이 String Q08_유효한 팰린드롬 (0) | 2022.01.31 |
자바 알고리즘 문제 풀이 String Q07_회문 문자열 (0) | 2022.01.28 |
자바 알고리즘 문제 풀이 String Q06_중복문자제거 (0) | 2022.01.26 |
Comments