[설명]
영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.
[입력]
첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.
[출력]
첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.
[예시]
[문제 풀이]
import java.util.Scanner;
public class Main {
private static String solution(String str) {
String answer;
char[] s = str.toCharArray();
int lt = 0;
int rt = str.length() - 1;
while (lt < rt) {
if (!Character.isAlphabetic(s[lt])) { // lt가 알파벳이 아닐 경우
lt++;
} else if (!Character.isAlphabetic(s[rt])) { // rt가 알파벳이 아닐 경우
rt--;
} else {
char tmp = s[lt]; // 위치 바꾸기
s[lt] = s[rt];
s[rt] = tmp;
lt++;
rt--;
}
}
answer = String.valueOf(s); // char 타입 배열을 문자열로 변경
return answer;
}
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(solution(str));
}
}
Scanner
변수를 선언하고, str
문자열에 입력받은 문자를 저장한다.toCharArray()
메소드를 통해 문자열 → char
타입 배열로 변경한다.lt
, 마지막 인덱스를 나타내는 rt
변수를 선언한다.