유리쯔의일상 2023. 10. 10. 12:47
반응형

👇 공부한 자료들의 실제 소스파일들을 기록해논 공간입니다 👇

 

 

 

 

 

 

 

문제 해결고민

1. 문자열 메소드에 중복 문자를 확인하는 게 있을까?

2. 중복 문자 확인하는 메서드가 없는 경우 배열로 비교하는 처리를 해야 하나? 

여러 방법을 고민해 봤으나 ㅠ 정보처리기사 실기가 머지않아 시간을 많이 쏟아내지 못했다.

시험을 끝낸 뒤 다시 확인해보려 했으나 우선 선생님의 수업을 듣고 재 생각해 보기로 했다

 

 

 

 

 

 

 

 

 

 

선생님의 풀이과정

1. 먼저 indexOf() 메서드를 사용하는 것이다.

indexOf() 메서드는 

indexOf()는 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며

만약 찾지 못했을 경우 "-1"을 반환한다.

 

charAt으로 쪼갠 문자 / 인덱스 번호 / 처음 나타난 인덱스 번호

이것으로 유추하여 풀이하면 되는 문제였다.

 

 

import java.util.*;  
  
class Main {  
    public String solution(String str) {  
        String answer;  
        char[] substr = str.toCharArray();  
        int lt = 0, rt = str.length() - 1;  
        while (lt < rt) {  
            if (!Character.isAlphabetic(substr[lt])) {    // 알파벳이 아닐 때  
                lt++;  
            } else if (!Character.isAlphabetic(substr[rt])) {  // 알파벳이 아닐 때  
                rt--;  
            } else {  
                char tmp = substr[lt];  
                substr[lt] = substr[rt];  
                substr[rt] = tmp;  
                lt++;  
                rt--;  
            }  
        }  
        answer = String.valueOf(substr);  
        return answer;  
    }  
  
    public static void main(String[] args) {  
        Main T = new Main();  
        Scanner in = new Scanner(System.in);  
        String str = in.next();  
        System.out.println(T.solution(str));  
    }  
}  
// #a!bGE*@sT

 

 

 

 

 

 

 

 

 

indexOf() 

indexOf(String s) : 탐색하고자 하는 문자열에서 s 문자열이 몇 번째 인덱스에 있는지 확인, 없으면 -1 반환, 아스키코드도 가능하다

indexOf(int i) : 

indexOf(String s, int startindex) : startindex는 탐색하는 위치를 지정하는 것이다.

indexOf(int i, int startindex) 

 

lastIndexOf() : 특정 문자나 문자열에서 해당하는 문자를 뒤부터 탐색하여 찾은 인덱스 값을 반환한다. 찾지 못할 경우 -1을 반환한다,

lastIndexOf(String s)

lastIndexOf(int i)

lastIndexOf(String s, int startindex)

lastIndexOf(int i, int startindex)

 

 

 

 

 

 

 

 

 

 

반응형