✅ 문제

✅ 코드
public class bonus02 {
public static void main(String[] args) {
System.out.println(getMiddle("123456789"));
}
public static String getMiddle(String wrd) {
int center = wrd.length() / 2 + 1;
String result;
if (wrd.length() % 2 == 0) {
result = wrd.substring(center - 2, center);
} else {
result = wrd.substring(center - 1, center);
}
return result;
}
}
1. getMiddle 메소드는 문자열을 입력으로 받아서 그 문자열의 중간에 있는 문자 또는 문자들을 반환한다.
2. 입력된 문자열의 길이를 이용하여 중간 인덱스를 계산한다.
- 만약 문자열의 길이가 홀수이면 중간에 있는 문자를 반환하고, 짝수이면 중간에 있는 두 문자를 반환한다.
3. substring 메소드를 사용하여 중간에 있는 문자 또는 문자들을 추출한다.
- 추출한 결과를 반환한다.
wrd.length() / 2 + 1
문자열의 중간 위치를 계산하는 부분이다.
여기서 + 1을 하는 이유는 문자열의 인덱스가 0부터 시작하기 때문이다. 문자열의 길이가 홀수인 경우, 중간 문자는 (길이 - 1) / 2 위치에 있다. 예를 들어, 길이가 5인 문자열의 경우, 중간 문자는 인덱스 2에 위치한다. 문자열의 길이가 짝수인 경우, 중간에 있는 두 문자를 반환해야 한다. 예를 들어, 길이가 6인 문자열의 경우, 중간에 있는 두 문자는 인덱스 2와 3에 위치한다. 따라서 + 1을 추가하여 중간 위치를 계산함으로써 홀수 길이와 짝수 길이의 경우 모두 정확히 중간 위치를 계산할 수 있다.
substring(int beginIndex, int endIndex) 메서드
주어진 문자열에서 특정 범위의 문자열을 추출하는 메서드
여기서 beginIndex는 추출을 시작할 인덱스를 나타내고, endIndex는 추출을 끝낼 인덱스를 나타낸다. 이때, beginIndex는 포함되고, endIndex는 포함되지 않는다. 즉, 반환되는 문자열에는 beginIndex에 해당하는 문자는 포함되지만, endIndex에 해당하는 문자는 포함되지 않는다.
(length-1)/2 VS length/2 +1
(길이 - 1) / 2 방식:
문자열의 길이가 홀수일 때: (홀수 - 1) / 2 = 홀수 / 2 = 정수 (홀수 길이 문자열의 중간 인덱스)
문자열의 길이가 짝수일 때: (짝수 - 1) / 2 = 짝수 / 2 = 정수 (짝수 길이 문자열의 중간 왼쪽 인덱스)
길이 / 2 + 1 방식:
문자열의 길이가 홀수일 때: 홀수 / 2 + 1 = 정수 (홀수 길이 문자열의 중간 인덱스)
문자열의 길이가 짝수일 때: 짝수 / 2 + 1 = 정수 (짝수 길이 문자열의 중간 오른쪽 인덱스)
이 두 가지 방식 중 어느 것을 선택하느냐는 중간에 있는 문자나 문자들을 어떻게 정의하느냐에 따라 다르다. 첫 번째 방식은 홀수 길이 문자열의 경우 중간에 있는 문자를 정확히 가리키지만, 짝수 길이 문자열의 경우 왼쪽에 있는 문자를 가리킨다. 반면 두 번째 방식은 홀수와 짝수 모두 중간에 있는 문자를 가리킨다. 그래서 두 번째 방식이 더 적합하고 정확하다.
'JavaFestival' 카테고리의 다른 글
[자바페스티벌] 보너스4번 - 사용자에게 입력받아 배열 인덱스의 수 만큼 별 찍기 (0) | 2024.04.23 |
---|---|
[자바페스티벌] 보너스3번 - 연산자를 입력받아 연산 결과값을 반환하는 cal 메소드 계산기 (0) | 2024.04.23 |
[자바페스티벌] 보너스1번 - A-B를 출력하다가 A와 B 입력이 모두 0이면 종료되는 프로그램 (0) | 2024.04.23 |
스마트 인재개발원 자바페스티벌 규칙 & 잘 하는 꿀팁 !! (1) | 2024.04.15 |
[자바페스티벌] 31번 - N! 값 구하기 / 팩토리얼 (0) | 2024.03.29 |
✅ 문제

✅ 코드
public class bonus02 { public static void main(String[] args) { System.out.println(getMiddle("123456789")); } public static String getMiddle(String wrd) { int center = wrd.length() / 2 + 1; String result; if (wrd.length() % 2 == 0) { result = wrd.substring(center - 2, center); } else { result = wrd.substring(center - 1, center); } return result; } }
1. getMiddle 메소드는 문자열을 입력으로 받아서 그 문자열의 중간에 있는 문자 또는 문자들을 반환한다.
2. 입력된 문자열의 길이를 이용하여 중간 인덱스를 계산한다.
- 만약 문자열의 길이가 홀수이면 중간에 있는 문자를 반환하고, 짝수이면 중간에 있는 두 문자를 반환한다.
3. substring 메소드를 사용하여 중간에 있는 문자 또는 문자들을 추출한다.
- 추출한 결과를 반환한다.
wrd.length() / 2 + 1
문자열의 중간 위치를 계산하는 부분이다.
여기서 + 1을 하는 이유는 문자열의 인덱스가 0부터 시작하기 때문이다. 문자열의 길이가 홀수인 경우, 중간 문자는 (길이 - 1) / 2 위치에 있다. 예를 들어, 길이가 5인 문자열의 경우, 중간 문자는 인덱스 2에 위치한다. 문자열의 길이가 짝수인 경우, 중간에 있는 두 문자를 반환해야 한다. 예를 들어, 길이가 6인 문자열의 경우, 중간에 있는 두 문자는 인덱스 2와 3에 위치한다. 따라서 + 1을 추가하여 중간 위치를 계산함으로써 홀수 길이와 짝수 길이의 경우 모두 정확히 중간 위치를 계산할 수 있다.
substring(int beginIndex, int endIndex) 메서드
주어진 문자열에서 특정 범위의 문자열을 추출하는 메서드
여기서 beginIndex는 추출을 시작할 인덱스를 나타내고, endIndex는 추출을 끝낼 인덱스를 나타낸다. 이때, beginIndex는 포함되고, endIndex는 포함되지 않는다. 즉, 반환되는 문자열에는 beginIndex에 해당하는 문자는 포함되지만, endIndex에 해당하는 문자는 포함되지 않는다.
(length-1)/2 VS length/2 +1
(길이 - 1) / 2 방식:
문자열의 길이가 홀수일 때: (홀수 - 1) / 2 = 홀수 / 2 = 정수 (홀수 길이 문자열의 중간 인덱스)
문자열의 길이가 짝수일 때: (짝수 - 1) / 2 = 짝수 / 2 = 정수 (짝수 길이 문자열의 중간 왼쪽 인덱스)
길이 / 2 + 1 방식:
문자열의 길이가 홀수일 때: 홀수 / 2 + 1 = 정수 (홀수 길이 문자열의 중간 인덱스)
문자열의 길이가 짝수일 때: 짝수 / 2 + 1 = 정수 (짝수 길이 문자열의 중간 오른쪽 인덱스)
이 두 가지 방식 중 어느 것을 선택하느냐는 중간에 있는 문자나 문자들을 어떻게 정의하느냐에 따라 다르다. 첫 번째 방식은 홀수 길이 문자열의 경우 중간에 있는 문자를 정확히 가리키지만, 짝수 길이 문자열의 경우 왼쪽에 있는 문자를 가리킨다. 반면 두 번째 방식은 홀수와 짝수 모두 중간에 있는 문자를 가리킨다. 그래서 두 번째 방식이 더 적합하고 정확하다.
'JavaFestival' 카테고리의 다른 글
[자바페스티벌] 보너스4번 - 사용자에게 입력받아 배열 인덱스의 수 만큼 별 찍기 (0) | 2024.04.23 |
---|---|
[자바페스티벌] 보너스3번 - 연산자를 입력받아 연산 결과값을 반환하는 cal 메소드 계산기 (0) | 2024.04.23 |
[자바페스티벌] 보너스1번 - A-B를 출력하다가 A와 B 입력이 모두 0이면 종료되는 프로그램 (0) | 2024.04.23 |
스마트 인재개발원 자바페스티벌 규칙 & 잘 하는 꿀팁 !! (1) | 2024.04.15 |
[자바페스티벌] 31번 - N! 값 구하기 / 팩토리얼 (0) | 2024.03.29 |