728x90
문제
문자열에서 숫자를 모두 찾아 더한 뒤에 해당 값을 문자열의 길이로 나눈 값을 반올림하여 리턴
설계
변수 선언 (숫자를 찾아낼 String digit, 총합을 구할 double sum, 숫자를 뺀 문자열 pure str)
- for문을 사용하여 문자열 순회 2-1. if (str에 숫자가 있다면) str을 int로 바꾸고 sum에 더해줌 2-2 else if (str이 공백이 아니라면) pure_str에 해당 문자열을 더해줌
- result에 총합 나누기 문자열의 길이를 넣음
- math.round를 사용해서 반올림을 해준다
### 구현
```java
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으로 바꿔주면 됨
728x90
'Java > 연습문제' 카테고리의 다른 글
[JAVA] 아이소그램(isogram) 알고리즘 (0) | 2022.10.21 |
---|---|
[JAVA] 나눗셈, 나머지 연산자 없이 나머지 구하기 (0) | 2022.10.21 |
[JAVA] 이전 요소들의 합보다 큰가? (0) | 2022.10.21 |
[JAVA] 가장 길고 짧은 문자열 제외하기 (0) | 2022.10.21 |
[JAVA] 연속되는 홀수 사이에 '-'넣기 (0) | 2022.10.21 |
댓글