백준 11719번 - 그대로 출력하기(B1)

dropKick·2020년 7월 9일
0

코딩테스트

목록 보기
7/17

풀이

  • 공백이 그대로 포함되서 문자열이 들어오고, 공백만 들어옴
  • 문제점
    공백을 어떻게 체크할 것인가?
    100글자를 어떻게 체크할 것인가?
    문자열 사이의 공백을 어떻게 체크할 것인가?

코드

public static void main(String[] args){
        ArrayList<String> words = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextLine()) {
            String word = sc.nextLine();
            if(word.length()>100 || !word.matches("[0-9|a-z|A-Z|ㄱ-ㅎ|ㅏ-ㅣ|가-힣|\" \"]*")) {
                break;
            }
            words.add(word);
        }
        for (String word : words) {
            System.out.println(word);
        }
    }
  • 문자 그대로 출력해야 했기에 문자열 공백을 삭제할 수 없었음
  • 결국 문자열 공백을 포함한 채 들어온 문자열 내 문자가 문자인지를 정규표현식으로 체크 후 리스트에 넣음
  • 유니코드에서 [ㄱ - 힣]으로 하면 유니코드 간 간격이 너무 넓어 다른 문자를 포함 가능
    따로 [가-힣] 까지 해주어야 함
    그런데 내가 알기로 [가-힣]으로 하면 올바르게 안되는 걸로 알았는데...
    [가-힣][가-힝] 둘 다 되더라
    링크 글을 참고 했는데도 영 확답은 안나옴
    아마 EUC-KR 에서 [가-힣]이 문제가 있는 것 같기도 함
    EUC-KR 가힝
    정규표현식과 한글

0개의 댓글