[ Java 코딩 테스트 ] 특정 문자 뒤집기

한대희·2024년 1월 18일
0

Java 코딩 테스트

목록 보기
6/11

문제

  • 영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수 문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.

입력

  • 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.

출력

  • 첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.

예시

//입력
a#b!GE*T@S

//출력
S#T!EG*b@a

코드

class Main {

    public static String solution(String str) {
        String answer = null;
        // 요소 하나하나를 건드려야 하기 때문에 전달받은 String을 배열로 만든다.
        char[] arr = str.toCharArray();
        // 처음 인덱스와 마지막 인덱스를 지정한다.
        int lt = 0, rt = str.length()-1;
        // 알파벳인지 확인하여 알바펫이면 위치 교환
        while  (lt < rt) {
            if (!Character.isAlphabetic(arr[lt])) {
                lt ++;
            } else if (!Character.isAlphabetic(arr[rt])) {
                rt ++;
            } else {
                char tmp = arr[lt];
                arr[lt] = arr[rt];
                arr[rt] = tmp;
                lt++;
                rt--;
            }
        }
        // 위치가 변한 배열을 String으로 바꿔 리턴
        answer = String.valueOf(arr);
        return answer;

    };

    public static void main(String[] args) {


        // 스캐너 객체를 생성한다.
        Scanner input = new Scanner(System.in);
        // 문자를 입력 받아 solutrion 메서드에 전달
        String str = input.next();
        System.out.println(solution(str));

    }
}

사용한 메서드

Character.isAlphabetic()

  • 명시된 char 값이 문자인지 여부를 리턴
Character.isAlphabetic('a') // true
Character.isAlphabetic('!') // false
Character.isAlphabetic('ㄱ') // true
Character.isAlphabetic('가') // true
Character.isAlphabetic('7') // false
profile
개발 블로그

0개의 댓글