영어 알파벳과 특수문자로 구성된 문자열이 주어지면 영어 알파벳만 뒤집고,
특수문자는 자기 자리에 그대로 있는 문자열을 만들어 출력하는 프로그램을 작성
.
.
입력: a#b!GE*T@S 출력 : S#T!EG*b@a
import java.util.Scanner;
// 특수문자가 무작위로 섞여있는 문자열에서 특수문자를 제외한 문자들을 서로 교환하는 문제 //
public class Inflearn5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
String answer = "";
char[] s = str.toCharArray();
int left = 0;
int right = str.length()-1;
while(left<right) {
if(!Character.isAlphabetic(s[left])) { // static메소드 character 메소드사용
left++; // 알파벳이 아니라면 left 인덱스 증가
} else if (!Character.isAlphabetic(s[right])) {
right--; // 알파벳이 아니라면 right 인덱스 감소
}
else { // 둘다 알파벳일 경우
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left ++;
right--;
}
}
// NullPointerException를 발생방지, toString()은 NullPointerException를 발생시킴
answer = String.valueOf(s);
System.out.println(answer); // answer 출력
}
}
자주 볼 수 있는 문제라고 생각.. 그러니까 복습을 자주 하자 !
'Java' 카테고리의 다른 글
#7 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 회문 문자열 (0) | 2023.02.10 |
---|---|
#6 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 중복문자제거 (0) | 2023.02.10 |
#4 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 단어 뒤집기 (0) | 2023.02.09 |
#3 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 문장 속 단어 (0) | 2023.02.09 |
#2 자바(JAVA) 알고리즘 문제풀이 : 코딩테스트 대비 / 대소문자 변환 (0) | 2023.02.09 |