Ex) getMinMaxString 메서드는 String형 변수 str을 매개변수로 입력받는다. str에는 공백으로 구분한 숫자들이 저장되어 있다. str에 나타나는 숫자 중 최솟값과 최댓값을 찾아 이를 "최솟값 최댓값" 형태의 String을 반환하는 메서드를 완성하라. 예를 들어 str이 "1 2 3 4"라면 "1 4"를 반환하고 "-1 -2 -3 -4"라면 "-4 -1"을 반환한다.
<hide/>
package javaStudy;
public class GetMinMaxString {
public String getMinMaxString(String str) {
String [] strArr = str.split(" ");
int maxValue = Integer.parseInt(strArr[0]);
int minValue = Integer.parseInt(strArr[0]);
for(int i = 1; i < strArr.length; ++i) {
int value = Integer.parseInt(strArr[i]);
if(maxValue < value)
maxValue = value;
if(minValue > value)
minValue = value;
}
return minValue + " " + maxValue;
}
public static void main(String[] args) {
String str = "1 2 3 4";
String str2 = "-4 -3 -2 -1";
GetMinMaxString minMax = new GetMinMaxString();
System.out.println("최댓값과 최솟값은? " + minMax.getMinMaxString(str));
System.out.println("최댓값과 최솟값은? " + minMax.getMinMaxString(str2));
}
}
Note) 실행 결과
- parseInt() : 문자열을 정수로 바꾼다.
- 내용이 숫자라도 ""(큰 따옴표)안에 들어있으면 숫자가 아니라 문자열로 취급한다.
- 문제는 공백으로 각 값들을 구분하고 비교해서 최댓값과 최솟값을 찾아낸 뒤 최댓값, 최솟값을 문자열로 반환하는 것이다.
- " " 공백 문자열을 구분자로 이용하면 된다.
- split() 메서드는 구분자로 잘라낸 문자열들을 배열로 반환한다.
- 값을 비교하기 위해서는 비교할 대상이 있어야 하는데 첫 번째 값은 비교 대상이 없으므로 최댓값이면서 최솟값이기도 하다.
- 최댓값, 최솟값을 담을 변수를 선언하고 배열의 첫 번째 요소를 각각 담는다.
- 문자열을 값이 숫자라도 연산이 되지 않기 때문에 비교를 정확히 하기 위해 문자열을 정수로 바꿔야 한다.
-> Wrapper Class
- Integer.parseInt() 메서드를 이용해 숫자로 된 문자열을 정수형으로 바꾼다.
- 최댓값, 최솟값 변수에 있는 값과 배열의 두 번째 요소부터 비교한다.
- 비교해서 최댓값보다 크다면 최댓값 변수의 값을 바꾸고 최솟값 변수보다 작으면 최솟값 변수를 바꾼다.
- 배열의 모든 요소를 비교하면 변수에 알맞은 값이 담긴다.
- +연산자는 숫자 뿐만 아니라 문자열에서도 사용한다.
'Java > 모두의 자바' 카테고리의 다른 글
Chapter 10-63 하샤드 수 (0) | 2022.02.13 |
---|---|
Chapter 10-61 정수 내림차순으로 배치하기 (0) | 2022.02.13 |
Chapter 10-60 삼각형 출력하기 (0) | 2022.02.13 |
Chapter 10-59 문자열을 내림차순으로 배치하기 (0) | 2022.02.13 |
Chapter 10-58 서울에서 김서방 찾기 (0) | 2022.02.13 |