본문으로 바로가기

[JAVA]String05.특정문자 뒤집기

category 코딩테스트/basic 2022. 5. 15. 01:52

설명

영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,

특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성하세요.

입력

첫 줄에 길이가 100을 넘지 않는 문자열이 주어집니다.

 

출력

첫 줄에 알파벳만 뒤집힌 문자열을 출력합니다.

 

 

해설

1) char[] s = str.toCharArray();

string 문자열을 toCharArray() 메소드 이용하여 배열로 바꿔준다.

 

2) Character.isAlphabetic() : 알파벳이나 한글이면 true

 

 

3) 두 변수의 값 교환

 

 

 

 

풀이

import java.util.Scanner;
class Main {
	
	public String solution(String str) {

		String answer = "";
		//string기반으로 문자배열 생성
		char[] s = str.toCharArray();
		//배열s의 첫번째 lt, 마지막 rt
		int lt = 0, rt = str.length()-1;
		
		while(lt < rt) {
			//알파벳이 아닐때, lt 1증가
			if(!Character.isAlphabetic(s[lt])) lt++;
			//알파벳이 아닐때, rt 1감소
			else if(!Character.isAlphabetic(s[rt])) rt--;
			else {
				char tmp= s[lt];
				s[lt] = s[rt];
				s[rt] = tmp;
				lt++;
				rt--;
			}
		
			answer=String.valueOf(s);
				
		}
 
	 	
		return answer;
 
	}

	public static void main(String[] args){
		Main t = new Main();
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		System.out.println(t.solution(str));
	}
}
 

 

 

'코딩테스트 > basic' 카테고리의 다른 글

[JAVA]String07. 회문 문자열  (0) 2022.05.17
[JAVA]String06.중복 문자 제거  (0) 2022.05.17
[ JAVA]String04.단어 뒤집기  (0) 2022.05.15
[JAVA]String03.문장 속 단어  (0) 2022.05.15
[ JAVA]String02.대소문자 변환  (0) 2022.05.15