Java/Short 개발

[Java/Short] 문자열의 문자를 가장 앞으로/뒤로 이동하는 방법

adjh54 2023. 11. 4. 23:48
반응형
해당 글에서는 문자열 중 문자를 맨 앞으로 보내거나 맨 뒤로 보내는 방법에 대해 알아봅니다.






1) 문자열 내의 마지막 문자를 가장 앞으로 보내기


 

1. 문자열 내의 마지막 문자를 1번 가장 앞으로 보내기


💡 문자열 내의 문자를 1번 가장 앞으로 보내기

- 주어진 문자열에서 마지막 문자를 가장 앞으로 1번 보내는 방법입니다.

 

💡 moveCharFirst() 함수

1. 마지막 문자를 추출합니다.

2. 첫번째 문자부터 마지막 문자 이전까지 문자열을 재구성합니다.

3. 마지막 문자에 구성한 첫번째 문자에서부터 마지막 문자 이전까지를 합쳐 재구성합니다.
/**
 * 문자열 내의 마지막 문자를 가장 앞으로 보내기
 *
 * @return
 */
@GetMapping("/9")
public ResponseEntity<ApiResponse<?>> question09() {
    String answer = "";
    String helloStr = "안녕하세요";

    answer = moveCharFirst(helloStr);
    
    // 결과값 :: 세요안녕하
    System.out.println("결과값 :: " + answer);

    ApiResponse<Object> ar = ApiResponse
            .builder()
            .result(answer)
            .resultCode(SUCCESS_CODE)
            .resultMsg(SUCCESS_MSG).build();
    return new ResponseEntity<>(ar, HttpStatus.OK);
}

/**
 * 문자열 내의 마지막 문자를 가장 앞으로 보내는 함수
 * @param str
 * @return
 */
public static String moveCharFirst(String str) {
    char lastChar = str.charAt(str.length() - 1);
    String restOfString = str.substring(0, str.length() - 1);
    return lastChar + restOfString;
}

 
 
 
 

2. 문자열 내의 마지막 문자를 n번 가장 앞으로 보내기


💡 문자열 내의 문자를 n번 가장 앞으로 보내기

- 주어진 문자열에서 마지막 문자를 가장 앞으로 n번 반복하여 보내는 방법입니다.

 

 

💡 rotation 값(이동횟수)에 따라서 첫번째 문자를 반복적으로 뒤로 보내는 형태로 구성을 합니다.
/**
 * 문자열 내의 마지막 문자를 가장 앞으로 보내기
 *
 * @return
 */
@GetMapping("/9")
public ResponseEntity<ApiResponse<?>> question09() {
    String answer = "";
    String helloStr = "안녕하세요";
    int rotation = 3;       // 회전 횟수

    for (int i = 0; i < rotation; i++) {
        helloStr = moveCharFirst(helloStr);
    }
    answer = helloStr;

    // 결과값 :: 하세요안녕
    System.out.println("결과값 :: " + answer);

    ApiResponse<Object> ar = ApiResponse
            .builder()
            .result(answer)
            .resultCode(SUCCESS_CODE)
            .resultMsg(SUCCESS_MSG).build();
    return new ResponseEntity<>(ar, HttpStatus.OK);
}

/**
 * 문자열 내의 마지막 문자를 가장 앞으로 보내는 함수
 * @param str
 * @return
 */
public static String moveCharFirst(String str) {
    char lastChar = str.charAt(str.length() - 1);
    String restOfString = str.substring(0, str.length() - 1);
    return lastChar + restOfString;
}

 
 
 

2) 문자열 내의 첫번째 문자를 가장 뒤로 보내기


 

1. 문자열 내의 첫번째 문자를 1번 가장 뒤로 보내기


💡 문자열 내의 문자를 1번 가장 뒤로 보내기

- 주어진 문자열에서 첫번째 문자를 가장 맨뒤로 1번 보내는 방법입니다.

 

 
 

💡 moveCharLast() 함수

1. 0번 인덱스(첫번째 문자)를 제외한 문자열을 재구성합니다.

2. 첫번째 문자를 재구성합니다.

3. 두번째 문자부터 구성한 문자열과 첫번째 문자를 합하여 재구성합니다.
/**
 * 문자열 내의 첫번째 문자를 가장 뒤로 보내기
 *
 * @return
 */
@GetMapping("/10")
public ResponseEntity<ApiResponse<?>> question10() {
    String answer = "";
    String helloStr = "안녕하세요";

    answer = moveCharLast(helloStr);

    // 결과값 :: 녕하세요안
    System.out.println("결과값 :: " + answer);

    ApiResponse<Object> ar = ApiResponse
            .builder()
            .result(answer)
            .resultCode(SUCCESS_CODE)
            .resultMsg(SUCCESS_MSG).build();
    return new ResponseEntity<>(ar, HttpStatus.OK);
}

/**
 * 문자열 내의 첫번째 문자를 가장 뒤로 보내기
 *
 * @param str
 * @return
 */
public static String moveCharLast(String str) {
    String restOfString = str.substring(1);
    char firstChar = str.charAt(0);
    return restOfString + firstChar;
}

 
 
 

2. 문자열 내의 첫번째 문자를 n번 가장 뒤로 보내기


💡 문자열 내의 문자를 n번 가장 뒤로 보내기

- 주어진 문자열에서 첫번째 문자를 가장 맨뒤로 n번 반복하여 보내는 방법입니다.

 

 
 

💡 rotation 값(이동횟수)에 따라서 첫번째 문자를 반복적으로 마지막으로 보내는 형태로 구성을 합니다.
/**
 * 문자열 내의 첫번째 문자를 가장 뒤로 보내기
 *
 * @return
 */
@GetMapping("/10")
public ResponseEntity<ApiResponse<?>> question10() {
    String answer = "";
    String helloStr = "안녕하세요";
    int rotation = 3;       // 회전 횟수

    for (int i = 0; i < rotation; i++) {
        helloStr = moveCharLast(helloStr);
    }
    answer = helloStr;

    // 결과값 :: 세요안녕하
    System.out.println("결과값 :: " + answer);

    ApiResponse<Object> ar = ApiResponse
            .builder()
            .result(answer)
            .resultCode(SUCCESS_CODE)
            .resultMsg(SUCCESS_MSG).build();
    return new ResponseEntity<>(ar, HttpStatus.OK);
}

/**
 * 문자열 내의 첫번째 문자를 가장 뒤로 보내기
 *
 * @param str
 * @return
 */
public static String moveCharLast(String str) {
    String restOfString = str.substring(1);
    char firstChar = str.charAt(0);
    return restOfString + firstChar;
}

 
 
 
 
 
오늘도 감사합니다. 😀
 
 
 

반응형