2022 01 28
2022-01-25
알고리즘 문제풀이 - 문자열
- String -> char[]
- 문자열.toCharArray() : charAt() 대신 사용 고려
- char[] -> String
- String.valueOf(char[]) : 이러면 문자열로 변환
- 대문자 -> 소문자
- Character.isLowerCase() : 소문자인지 확인
- Character.toUpperCase(c) : c를 대문자로
- 32를 char에 더하고 뺀 뒤 Casting
- 대문자 아스키 : 65 ~ 90
- 소문자 아스키 : 97 ~ 122
- StringBuilder 활용하기
- new StringBuilder(string) : 생성자에 String 넣어서 생성 가능
- StringBuilder.reverse() : 문자열 뒤집기
- 문자열 중복 제거
- 어렵게 생각하지마,,, 대칭이 아니라 그냥 중복된 놈이 있으면 삭제하는 문제였음
- indexOf를 활용해서 현재 문자 위치와 첫번째로 해당 문자가 등장한 위치를 비교해서 풀이 가능
- LinkedHashSet으로 순서 기억하며 중복 제가하는 방법도 가능
- 양 끝 부터 비교
- 길이의 1/2 만큼만 돌면 충분히 비교할 수 있음
- ReplaceAll & Regex
- 모든 알파벳이 아닌 문자를 없애고 싶어!
- string.toUpperCase().replaceAll("[^A-Z]", "");
- 문자열의 char 다른 char로 변경
- string.replace('#', '1');
- 2진법의 문자열 10진법으로 변경
- Integer.parseInt(string, 2);