(String)특정 문자 뒤집기/중복 문자 제거

-·2023년 12월 7일
0

Inflearn-basicTest

목록 보기
3/27

특정 문자 뒤집기

🗒️Character.isAlphabetic('')

''에 들어간 문자가 알파벳 a~Z인지 확인해서 boolean을 반환한다.

* 설명

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

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


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


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

isAlphabetic을 이용.

public String solution(String str) {
    String answer;
    char[] ch = str.toCharArray();
    int small = 0, large = str.length() - 1;
    while (small < large) {
        if (!Character.isAlphabetic(ch[small])) small++;
        else if (!Character.isAlphabetic(ch[large])) large--;
        else {
            char tmp = ch[small];
            ch[small] = ch[large];
            ch[large] = tmp;
            small++;
            large--;
        }
    }
    answer = String.valueOf(ch);
    return answer;
}

중복 문자 제거

🗒️String.contains

str.contains(str)

  • ->해당 문자가 포함되있는지 boolean으로 반환해준다.
    charSequence를 받는다.
  • char은 charSequence가 아니기 때문에, String.valueOf(ch)로 변환해서 넣어주어야 한다.

🗒️CharSequence

문자열을 가리키는 최상위 인터페이스.
String, StringBuilder, StringBuffer등이 이 인터페이스를 상속받았다.

* 설명

소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하고
출력하는 프로그램을 작성하세요.
중복이 제거된 문자열의 각 문자는 원래 문자열의 순서를 유지합니다.


* 입력
첫 줄에 문자열이 입력됩니다. 문자열의 길이는 100을 넘지 않는다.


* 출력
첫 줄에 중복문자가 제거된 문자열을 출력합니다.

String.contains를 이용

public String solution(String str) {
    String answer = "";
    char[] ch = str.toCharArray();
    for(char c : ch){
        if(!answer.contains(String.valueOf(c))) answer += c;
    }

    return answer;
}

indexOf이용

public String solution(String str){
	String answer = "";
    for(int i = 0; str.length(); i++){
    	if(i == str.indexOf(str.charAt(i))) answer += str.charAt(i)
      //해당 순번이   이 단어가 처음 나오는 순번이라면   = 추가해준다 
    }
}
profile
신입 개발자의 개인 공부 공간입니다

0개의 댓글