콘텐츠로 이동

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이 숫자인지 검증
    • Character.isDigit(char)
  • 문자열의 char 다른 char로 변경
    • string.replace('#', '1');
  • 2진법의 문자열 10진법으로 변경
    • Integer.parseInt(string, 2);
      • 2가 radix