문제
문자열을 넣으면 역순으로 뒤집어서 반환하는 reverseString() 메서드를 만든다.
예) ABCDE -> EDCBA
public static void main(String[] args) {
String input = "ABCDE";
String result = reverseString(input);
System.out.println(result); // expect: EDCBA
}
1번 방법
static String reverseString(String input) {
char[] charArray = input.toCharArray(); // 입력받은 문자열을 문자 배열로 변환
// 초침을 바꾸면서 서로 값을 swap하는 방식을 사용하기 위한 변수 선언 및 초기화
int left = 0; // 좌측 초침 설정
int right = charArray.length - 1; // 우측 초침(인덱스)은 길이-1로 설정
while (left < right) { // 맨 좌측, 맨 우측부터 서로 교환
char temp = charArray[left]; // 한쪽 값을 swap용 temp에 저장.
charArray[left] = charArray[right]; // 덮어쓰기
charArray[right] = temp; // 백업한 좌측 값을 우측에 저장
// 좌우측 1씩 초침 변경
left++;
right--;
}
String result = new String(charArray); // 문자 배열을 String 객체로 생성
return result;
}
좌, 우측을 가리키는 초침 역할을 하는 변수를 선언하여
양쪽 값을 바꾸는 방식을 이용했다.
2번 방법
static String reverseString(String input) {
StringBuilder reversedString = new StringBuilder();
int inputLength = input.length();
for (int i = 1; i <= inputLength; i++) {
reversedString.append(input.charAt(inputLength - i));
}
return reversedString.toString();
}
StringBuilder를 생성하여
원본(input) 문자열의 맨 끝을 따와서 StringBuilder에 하나씩 추가하는 식으로 했다.
'Java' 카테고리의 다른 글
[Java] 부모 클래스의 기본 생성자가 없는 경우의 상속 (0) | 2022.08.20 |
---|---|
[Java] 버블 정렬(Bubble Sort) 구현해보기 (0) | 2022.08.16 |
자바 - 내부 클래스(Inner class) (0) | 2022.08.10 |
자바(Java) - 예외(Exception) (0) | 2022.08.05 |
[Java] 컬렉션 프레임워크(Collection Framework) (0) | 2022.08.03 |