-
자바 특정 문자 뒤집기공부 2022. 2. 14. 22:19728x90
제출한 코드는 다음과 같다.
import java.util.*;public class inflearn1_5 {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner=new Scanner(System.in);String str=scanner.next();String answer = solution(str);System.out.println(answer);return ;}public static String solution(String str) {String answer = "";char[] a=str.toCharArray();int lt=0;int rt=str.length()-1;while(lt<rt){if(!Character.isAlphabetic(a[lt])){lt++;}else if(!Character.isAlphabetic(a[rt])){rt--;}else{char temp=a[lt];a[lt]=a[rt];a[rt]=temp;lt++;rt--;}}answer=String.valueOf(a);return answer;}}단어 뒤집기 강의에서 문자열을 toCharArray()를 이용하여 char 배열으로 변환한 후,
오른쪽 끝과 왼쪽 끝을 rt, lt로 지정하고 이동하여,
왼쪽 끝에 있던 lt의 위치가 오른쪽 끝에 있던 rt의 위치보다 클 경우
전부 바꼈다고 볼 수 있어 while 문을 종료한다.
Character.isAlphabetic을 이용하여 알파벳인지 아닌지 파악하였다.
알파벳이 아닌경우 lt 혹은 rt의 위치를 이동하였고,
둘 다 알파벳인 경우 둘의 위치를 변경 시킨 후 lt와 rt의 위치를 이동하였다.
String.valueOf를 이용하여 char 배열을 String으로 변환시켰다.
728x90반응형'공부' 카테고리의 다른 글
자바 스트림 (0) 2022.07.26 자바 예외 처리 (0) 2022.07.26 7계층 HTTP 프로토콜 (0) 2022.07.26 자바 중복 문자 제거 (0) 2022.02.14 자바 단어 뒤집기 (0) 2022.02.14