반응형
SMALL
![](https://blog.kakaocdn.net/dn/bbeBGq/btry6D4Mlym/Yhwwpl7QVX8339pOTeP520/img.jpg)
# 방법 1 : 아스키넘버 사용
- 문자 숫자 ‘0’ ~ ‘9’ 의 아스키넘버: 48~57
1. 문자열을 문자배열로 바꾼다.
2. 각 문자를 하나씩 검사하며, 문자숫자이면(즉, 아스키넘버가 48~57에 해당하면) 골라내서 연산한다.
3. answer = answer*10 + (x-48) <<==== 공식 잘 기억해두기!!!
![](https://blog.kakaocdn.net/dn/bET4h0/btry2SaMoKa/UxdyzQKuKprk8koDl2tfZ0/img.jpg)
import java.util.Scanner;
public class Main {
public int solution(String str){
int answer = 0;
// 아스키넘버를 사용할 것이므로, 일단 문자열을 문자배열로 바꾸기
for(char x:str.toCharArray()){
// 각 문자의 아스키넘버가 48~57(문자숫자 아스키넘버) 사이라면,
// (x-48)로 숫자로 바꾸어준 뒤, 연산.
if(x>=48 && x<=57) answer=answer*10 + (x-48);
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb=new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
# 방법 2 : Character.isDigit() 함수 이용
- Character.isDigit() 함수 이용
- 마지막에 Integer.parseInt() 함수 이용하여 문자열을 정수로 변환해서 반환해주기!
import java.util.Scanner;
public class Main {
public int solution(String str){
String answer = "";
for(char x:str.toCharArray()){
// 숫자라면 문자열에 추가하기
if(Character.isDigit(x)) answer+=x;
}
// 문자열로 반환하면, 0208같은 경우 그대로 출력되므로,
// 숫자로 변환하여 208로 출력되게 한다.
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.println(T.solution(str));
}
}
반응형
LIST
'자바 알고리즘' 카테고리의 다른 글
11. 문자열 압축 (0) | 2022.07.06 |
---|---|
10. 가장 짧은 문자거리 (0) | 2022.07.05 |
08. 팰린드롬 (replaceAll 정규식 이용) (0) | 2022.04.11 |
07. 회문 문자열 (0) | 2022.04.08 |
06. 중복 문자 제거 (0) | 2022.04.08 |
댓글