5. 특정 문자 뒤집기
영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고, 특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.
첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.
첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.
===================================================
toCharArray( )를 이용하여 char 배열로 만든다. 그 후 단어의 문자의 길이와 0 을 정수로 지정한다. 문자열 길이의 절반까지만 비교하면 되므로 while(length>num)이라고 한다. 앞뒤가 모두 알파벳일 때만 비교함로 알파벳인지 검사하는 Character.isAlphabetic(x)를 사용한다. 앞뒤가 모두 알파벳이라면 직접 바꿔주고 저장한 다음 마지막에 최종값을 반환한다.
import java.util.*;
public class Main {
public String solution(String sentence) {
String answer="";
char [] array=sentence.toCharArray();
int length=(sentence.length()-1);
int num=0;
while(length>num) {
if(!Character.isAlphabetic(array[num])) num++;
else if(!Character.isAlphabetic(array[length])) length--;
else {
char word = array[num];
array[num]=array[length];
array[length]=word;
length--;
num++;
}
}
answer=String.valueOf(array);
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
String sentence=scan.next();
System.out.println(main.solution(sentence));
}
}
1) 절반만 비교하면 되는 것, 길이를 이용하여 구하자
2) 알파벳인지 검사