[Java알고리즘] 9. 숫자만 추출

진주·2022년 3월 13일
0

Java알고리즘

목록 보기
7/10

🌼 Problem


🍔 Solution 1 - replaceAll() 사용

import java.util.Scanner;

public class Main {

    public static int Solution(String str){
        int answer;
        
        String removed = str.replaceAll("[^0-9]", "");
        answer = Integer.parseInt(removed);

        return answer;
    }

        public static void main(String[] args){

            Scanner in = new Scanner(System.in);
            String input = in.next();

            System.out.println(Solution(input));
        }
    }

결과


😥 몰랐던 점

만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다. 를 어떻게 해결해야할 지 몰랐다

Integer.parseInt() 를 통해 01205 가 1205로 자연스럽게 파싱된다.


🙄 replaceFirst() ?

replaceFirst([기존문자], [바꿀문자])

reaplceFisrt함수는 자신이 바꾸고 싶은 문자열이 처음으로 해당할 때만 치환해주는 기능을 갖는다.

String a = "무궁화 삼천리 화려강산 대한사람 대한으로 길이 보전하세 ";

a = a.replaceFirst("대한","민국");
System.out.println(a)

// 결과값 : 무궁화 삼천리 화려강산 민국사람 대한으로 길이 보전하세

🍔 Solution 2 - 아스키 코드 사용

import java.util.Scanner;

public class Main {

    public static int Solution(String str){
        int answer = 1;

        char[] charr = str.toCharArray();
        StringBuilder builder = new StringBuilder();

        for(char c : charr){
            if( (int)c >= 48 && (int)c <= 57 ){
                builder.append(c);
            }
        }
        answer = Integer.parseInt(builder.toString());
        return answer;
    }


    public static void main(String[] args){

        Scanner in=new Scanner(System.in);
        String input = in.next();

//        Solution(input);
        System.out.println(Solution(input));

    }

}

결과


🍪 강사 Solution - Character.isDigit() 사용

import java.util.Scanner;

public class Main {
    // Character.isDigit() 사용
    public static 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){

        Scanner in=new Scanner(System.in);
        String input = in.next();

//        Solution(input);
        System.out.println(Solution(input));

    }

}

출처 : https://coding-factory.tistory.com/128

profile
진주의 코딩일기

0개의 댓글

관련 채용 정보