Post

String_특정 문자 뒤집기_ofValue, isAlphabetic

✅ 영어 알파벳과 특수문자로 구성된 문자열이 주어졌을 때 알파벳만 뒤집고, 특수문자는 그대로 둔다.

단, 특수문자이면 그 다음 인덱스와 바꿈

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Main {
    public String solution(String str){
        String answer;
        char[] charArr= str.toCharArray();
        int lt= 0;
        int rt= str.length()-1;
        while(lt < rt){
            char l = charArr[lt];
            char r= charArr[rt];
            if(!Character.isAlphabetic(l)){
                lt++;
            } else if (!Character.isAlphabetic(r)) {
                rt--;
            }else{
                charArr[lt] = r;
                charArr[rt] = l;
                lt++;
                rt--;
            }
        }
        String tmp= String.valueOf(charArr);
        answer= tmp;
        return answer;
    }
    public static void main(String[] args) {
        Main T = new Main();
        Scanner sc= new Scanner(System.in);
        String str= sc.nextLine();
        System.out.println(T.solution(str));

    }

}


//⭐️input:
//a#b!GE*T@S
//⭐️output:
//S#T!EG*b@a

🔵 ThingsILearned

✔️ Character.isAlphabetic(l)

알파벳인지 아닌지 확인하기
ascii 코드는 오류날 가능성이 많고, 코드도 길다.
하지만 ascii 코드로 알파벳인지 확인하는 코드

1
2
3
4
   if(((int) l >= 97 && (int) l <= 122) || ((int) l >= 65 && (int) l <= 90) ){
       charArr[lt] = charArr[rt];
       charArr[rt] = l;
   }
This post is licensed under CC BY 4.0 by the author.