보름달빵 2025. 4. 9. 16:13

 

✅Character.isAlphabetic 

package 섹션1_String;

import java.io.*;

public class 특정문자뒤집기 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

      char[] arr= br.readLine().toCharArray();

      int l=0;
      int r=arr.length-1;

      while(l<r){

          if(Character.isAlphabetic(arr[l]) && Character.isAlphabetic(arr[r])){
              char temp=arr[l];
              arr[l]=arr[r];
              arr[r]=temp;

              l++;
              r--;
          } else if (Character.isAlphabetic(arr[l])) {
              r--;
          } else if(Character.isAlphabetic(arr[r])){
              l++;
          }else{
              l++;
              r--;
          }

      }
        bw.write(String.valueOf(arr));
        bw.flush();
        br.close();
        bw.close();

    }
}

 

 

 

📌중요한 코드 

 

if~else if~else 구조에서 "어떤 조건으로 구분"을 해야 식을 더 간단하게 작성할 수 있을지 고민해보기

while(l<r){

    if(!Character.isAlphabetic(arr[l])){ // l-> 특수문자인 경우
       l++;
    } else if(!Character.isAlphabetic(arr[r])){ // r -> 특수문자인 경우
        r--;
    }else{
        char temp=arr[l];
        arr[l]=arr[r];
        arr[r]=temp;

        l++;
        r--;
    }

}