<섹션1-STRING> 5. 특정 문자 뒤집기

조이·2021년 7월 20일
0

자바 알고리즘

목록 보기
5/41
post-thumbnail

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) 알파벳인지 검사

  • Character.isAlphabetic(특정문자);
profile
joy_study

0개의 댓글