250x250
반응형
Notice
Recent Posts
Recent Comments
Link
종식당
자바 알고리즘 문제풀이 5. 특정 문자 뒤집기(toCharArray()) 본문
728x90
반응형
- 문제 설명
첫째줄에 숫자를 입력받으면 이 숫자만큼 문자열을 입력받는다. 입력받은 문자열중에서 특수문자는 그대로 내버려두고 알파벳만 뒤집어서 출력하면 된다.
- 제출 코드
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.next();
String answer = "";
char [] arr = str.toCharArray();
int lt = 0, rt = str.length() - 1;
while(lt < rt){
if(!Character.isAlphabetic(arr[lt])) lt++;
else if(!Character.isAlphabetic(arr[rt])) rt--;
else{
char temp;
temp = arr[lt];
arr[lt] = arr[rt];
arr[rt] = temp;
lt++;
rt--;
}
}
answer = String.valueOf(arr);
System.out.println(answer);
}
}
- 코드 설명
문자를 거꾸로 뒤집는 문제는 이전처럼 StringBuilder의 reverse()를 사용해 풀 수 도 있지만 완전히 뒤집는 문제가 아닐 때는 조건을 따져서 lt와 rt를 이용해서 풀 수 있다.
lt는 처음 인덱스 문자열 맨 앞에서 시작하고 rt는 마지막 인덱스 문자열 맨 뒤에서 시작한다. lt와 rt에 해당하는 문자들을 먼저 특수문자인지 알파벳인지부터 확인하고 모두 알파벳이면 위치를 바꿔준다.
문자열 배열을 사용해서 배열을 돌았으니 출력해줄 때는 문자열로 출력해 준다.
- 마무리
toCharArray()
toCharArray()는 문자열을 문자 배열(char [])로 변환 => 문자열의 각 문자를 하나씩 배열의 요소로 넣어 반환한다.
String str = "Hello"; char[] arr = str.toCharArray(); // ['H', 'e', 'l', 'l', 'o']
Character.isAlphabetic(char ch)
Character.isAlphabetic(char ch)는 입력받은 문자가 알파벳인지 확인하여, 알파벳 문자인 경우 true를 반환하고 그렇지 않으면 false를 반환
char ch = 'A'; boolean result = Character.isAlphabetic(ch); // true char ch2 = '1'; boolean result2 = Character.isAlphabetic(ch2); // false
String.valueOf(char [] data)
String.valueOf(char [] data)는 입력받은 문자 배열(char[])을 문자열로 변환하여 반환
자바에서는 문자 배열을 문자열로 직접 변환할 수 없기 때문에, 배열 내의 문자들을 합쳐서 하나의 문자열로 표현할 때 사용
char[] arr = {'H', 'e', 'l', 'l', 'o'}; String str = String.valueOf(arr); // "Hello"
728x90
반응형
'자바 알고리즘 문제풀이' 카테고리의 다른 글
자바 알고리즘 문제풀이 6. 중복문자제거(indexOf) (0) | 2024.11.01 |
---|---|
자바 알고리즘 문제풀이 4.단어 뒤집기 (StringBuilder) (0) | 2024.11.01 |
자바 알고리즘 문제풀이 2.대소문자 변환 (0) | 2024.10.30 |
자바 알고리즘 문제풀이 1.문자 찾기 (0) | 2024.10.30 |