[JAVA] 문자열에서 숫자를 찾아..

2D3·2022년 8월 16일
0

매일 코딩

목록 보기
14/14

문제

문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 문자열의 길이로 나눈 값을 반올림하여 리턴

설계

1. 변수 선언 (숫자를 찾아낼 String digit, 총합을 구할 double sum, 숫자를 뺀 문자열 pure str)
2. for문을 사용하여 문자열 순회
    2-1. if (str에 숫자가 있다면)
            str을 int로 바꾸고 sum에 더해줌
    2-2 else if (str이 공백이 아니라면)
                pure_str에 해당 문자열을 더해줌
3. result에 총합 나누기 문자열의 길이를 넣음
4. math.round를 사용해서 반올림을 해준다

구현

public class Main {
    public static void main(String[] args) {
        System.out.print(numberSearch("Hello6 9World 2,"));
    }
    public static int numberSearch(String str) {
        if (str.length() == 0) return 0;

        String digit = "0123456789";
        double sum = 0;
        String pure_str = "";

        for(int i = 0; i < str.length(); i++) {
            if (digit.indexOf(str.charAt(i)) != -1) {
                sum = sum + Character.getNumericValue(str.charAt(i));
            }
            else if (str.charAt(i) != ' ') {
                pure_str = pure_str + str.charAt(i);
            }
        }
        double result = sum / pure_str.length();
        return (int) Math.round((result * 10) /10);
    }
}

사용 메서드

  • indefxOf(): 값이 존재하면 해당 인덱스를 리턴, 값이 없다면 -1을 리턴
  • str -> char -> int: Character.getNumericValue(str.charAt(i))
  • Math.round((result * 10) /10): 소수점 첫번째 자리에서 반올림 해줌. 두번째 자리에서 하려면 10을 100으로 바꿔주면 됨
profile
return Success;

0개의 댓글