한글이 아닌경우 삭제하려고 하는데요.

조회수 1760회

자바로 텍스트 파일을 읽어서 한글로 변환을 하는데요

변환된 내용중에 한글이 아닌경우 전부다 삭제를 하려고 하는데

어떻게 해야 하나요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • "한!6글4@이a#SA $2아%7닌^경&우FS* 삭a(제)하+려A8a9(고^+SF 하G32H2는데요.".replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣]", "") ----> 한글이아닌경우삭제하려고하는데요 --------------------- "한!6글4@이a#SA $2아%7닌^경&우FS* 삭a(제)하+려A8a9(고^+SF 하G32H2는데요." .replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣 ]", "") 하면 띄어쓰기는 남겨둬욤,, 장하니 2018.8.23 10:15

1 답변

  • 어떤형식으로 받을지 모르지만 예를들면 하기와 같은 형태

    String [] regex1 = {"aa","a1","11","ㅁ1","ㅁ","ㅁa"};
            for(int i = 0; i < regex1.length; i++) {
            if(!regex1[i].matches(".*[ㄱ-ㅎㅏ-ㅣ가-힣]+.*")) 
                System.out.println(regex1[i]);
    
    

    결과

    aa

    a1

    11


    한개의 문자열로 할때..

    String regex2 = "1ㄱ$@!3ㄴasdfe4ㄷ212@@5ㄹ22";
    String removehangul = "";
    for (int i = 0; i < regex2.length(); i++) 
        if (Character.getType(regex2.charAt(i)) == 5) 
            System.out.print(regex2.charAt(i));
        else
            removehangul += regex2.charAt(i);
    System.out.println("\n"+removehangul);
    

    결과

    ㄱㄴㄷㄹ

    1$@!3asdfe4212@@522

    • 특수문자라는게 그냥 키보드에 있는 문자일수도 있고 한글 하나 눌러서 한자버튼 누르면 특수문자 기입도 할수 있고 다양한 방법으로 다양한 특수문자를 넣을수 있잖아요. 알 수 없는 사용자 2018.8.22 15:49
    • 그런것들도 삭제할수 있나요? 알 수 없는 사용자 2018.8.22 15:50
    • whitebox 로 처리를 하세요. 막을 것을 생각하지 말고 허용할 것을 생각하세요. 질문을 보니 영문, 숫자만 허용하면 되지 않나요? 정영훈 2018.8.22 18:14
    • 제가 먼저 특수문자 .=점 으로 처리를 하고 숫자들은 한글로 변환을 합니다 . 그 이후에 나머지 특수문자와 영문을 제거 하고 싶습니다. 알 수 없는 사용자 2018.8.22 18:35
    • 정규식처리하면 일단 "한글"을 따로 전부 처리가능합니다. 강수현 2018.8.23 09:02
    • /^[0-9]+$/ - 숫자를, 또한 /[\{\}\[\]\/?.,;:|\)*~`!^\-_+<>@\#$%&\\\=\(\'\"]/ - 특수문자 를 처리가능합니다. 강수현 2018.8.23 09:04

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)