문제
입력
출력
예시
//입력
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()
Character.isAlphabetic('a') // true
Character.isAlphabetic('!') // false
Character.isAlphabetic('ㄱ') // true
Character.isAlphabetic('가') // true
Character.isAlphabetic('7') // false