{"id":44689725,"url":"https://github.com/VaneProject/bad-word-filtering","last_synced_at":"2026-03-13T06:00:59.020Z","repository":{"id":104398180,"uuid":"503246474","full_name":"VaneProject/bad-word-filtering","owner":"VaneProject","description":"욕설, 비속어등을 확인하고 처리하는 라이브러리 입니다. 필터링용 욕설및 비속어가 보일 수 있으니 참고해주세요.","archived":false,"fork":false,"pushed_at":"2024-09-12T10:54:21.000Z","size":164,"stargazers_count":35,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-09-12T22:14:29.215Z","etag":null,"topics":["gradle","java","library","maven","mit"],"latest_commit_sha":null,"homepage":"https://vaneproject.github.io/web/library/bad-word-filtering.html","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/VaneProject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-14T07:05:50.000Z","updated_at":"2024-09-12T10:54:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"b03be81b-9350-4330-9cc3-b6e0acf6a4d4","html_url":"https://github.com/VaneProject/bad-word-filtering","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/VaneProject/bad-word-filtering","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaneProject%2Fbad-word-filtering","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaneProject%2Fbad-word-filtering/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaneProject%2Fbad-word-filtering/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaneProject%2Fbad-word-filtering/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/VaneProject","download_url":"https://codeload.github.com/VaneProject/bad-word-filtering/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/VaneProject%2Fbad-word-filtering/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30459760,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T03:55:51.346Z","status":"ssl_error","status_checked_at":"2026-03-13T03:55:33.055Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle","java","library","maven","mit"],"created_at":"2026-02-15T07:00:30.141Z","updated_at":"2026-03-13T06:00:59.013Z","avatar_url":"https://github.com/VaneProject.png","language":"Java","funding_links":[],"categories":["人工智能"],"sub_categories":["自然语言处理"],"readme":"# BadWordFiltering\n\n\u003ch1\u003e\u003cspan style=\"color: red\"\u003e주의\u003c/span\u003e\u003c/h1\u003e\n\u003cspan style=\"color: yellow\"\u003e비속어, 욕을 다루는 라이브러리인 많큼 코드에 욕과 비속어가 보일 수 있습니다. 양해부탁드립니다.\u003c/span\u003e\n\u003cbr\u003e\n\u003cspan style=\"color: pink\"\u003e현재 라이브러리에 단어를 추가중입니다. 관심이 있으신 분은 아래 링크를 통하여 단어 추가에 협력부탁드립니다.\u003c/span\u003e\u003cbr\u003e\n\n[욕/비속어 코드 링크 바로가기](https://github.com/VaneProject/bad-word-filtering/blob/master/src/main/java/com/vane/badwordfiltering/BadWords.java)\n\n### 블로그\n- [[Java] BadWordFiltering (욕, 비속어 필터 라이브러리)](https://persestitan.tistory.com/70)\n- [[Java] BadWordFiltering 2 (욕설 필터링 라이브러리)](https://persestitan.tistory.com/71)\n- [[Java] BadWordFiltering 3 (라이브러리 배포 안내)](https://persestitan.tistory.com/115)\n\n### 라이브러리\nmaven\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eio.github.vaneproject\u003c/groupId\u003e\n    \u003cartifactId\u003ebadwordfiltering\u003c/artifactId\u003e\n    \u003cversion\u003e1.0.0\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\ngradle\n```groovy\nimplementation 'io.github.vaneproject:badwordfiltering:1.0.0'\n```\n\ngradle (Kotlin)\n```kotlin\nimplementation(\"io.github.vaneproject:badwordfiltering:1.0.0\")\n```\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n# 생성자\n\n```java\nBadWordFiltering badWordFiltering = new BadWordFiltering();\n```\n```java\nBadWordFiltering badWordFiltering = new BadWordFiltering(String);\n```\n\n# 메소드\n### add()\n리턴타입: void\u003cbr\u003e\n설명: 라이브러리에서 지원하는 단어중에 원하는 단어가 없을 경우 해당 메소드를 사용하여 추가할 수 있습니다.\u003cbr\u003e\n```java\nbadWordFiltering.add(String[]);\nbadWordFiltering.add(List\u003cString\u003e);\nbadWordFiltering.add(Set\u003cString\u003e);\n```\n\n### remove()\n리턴타입: void\u003cbr\u003e\n설명: 라이브러리에서 지원하는 단어 중 필터링이 되면 안돼는 단어가 있을 경우 해당 메소드를 사용하여 필터링 단어에서 제거 하실 수 있습니다.\u003cbr\u003e\n```java\nbadWordFiltering.remove(String[]);\nbadWordFiltering.remove(List\u003cString\u003e);\nbadWordFiltering.remove(Set\u003cString\u003e);\n```\n\n### checkAndChange(String)\n리턴타입: String\u003cbr\u003e\n설명: 매개변수에 라이브러리에서 지원하는 단어가 포함되어있을 경우 욕/비속어가 특정 문자로 대체된 값을 반환합니다.\u003cbr\u003e\n\u003cspan style=\"color: skyblue\"\u003e특정문자 : 생성자를 쓸때 값을 넣으면 그 값이 적용이 되며, 기본값으로는 * 입니다.\u003c/span\u003e\u003cbr\u003e\n```java\nString test = \"문장...\";\nbadWordFiltering.checkAndChange(test);\n\nSystem.out.println(test);\n\n출력\n욕/비속어가 대체되어서 나온 문장\n```\n\n### check(String)\n리턴타입: boolean\u003cbr\u003e\n설명: 비속어/욕이 포함되어있을 경우 true를 반환하고 포함하지 않으면 false를 반환합니다.\u003cbr\u003e\n```java\nboolean test = badWordFiltering.check(\"문장...\");\nif (test) {\n\t(...)\n}\n```\n\n### blankCheck(String)\n리턴타입: boolean\u003cbr\u003e\n설명: 욕/비속어가 띄어쓰기로 나누어져있어도 띄어쓰기를 무시하고 체크를 합니다. 만약 존재하면 true를 반환하고 없다면 false를 반환합니다.\u003cbr\u003e\n```java\nboolean test = badWordFiltering.blankCheck(\"문장...\");\nif (test) {\n\t(...)\n}\n```\n\n# 동작 예제\n욕은 '욕설'로 대체하여 사용합니다.\u003cbr\u003e\n### change와 생성자\n```java\nSring bad = \"욕설을 욕설 말하는 중\";\nBadWordFiltering badWordFiltering1 = new BadWordFiltering();\nBadWordFiltering badWordFiltering2 = new BadWordFiltering(\"-\");\n\nString text1 = badWordFiltering.change(bad);\t//기본값 *\nString text2 = badWordFiltering.change(bad);\t//입력값 -\nSystem.out.println(text1);\nSystem.out.println(text2);\n\n출력\n**을 ** 말하는 중\n--을 -- 말하는 중\n```\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n### check와 blankCheck\n```java\nSring bad1 = \"욕    설\";\nSring bad2 = \"욕설\";\nBadWordFiltering badWordFiltering1 = new BadWordFiltering();\n\nboolean bool1 = badWordFiltering.check(bad1); \t\t//욕    설\nboolean bool2 = badWordFiltering.blankCheck(bad1);\t//욕    설\nboolean bool3 = badWordFiltering.check(bad2);\t\t//욕설\nboolean bool4 = badWordFiltering.blankCheck(bad2);\t//욕설\nSystem.out.println(text1);\nSystem.out.println(text2);\nSystem.out.println(text3);\nSystem.out.println(text4);\n\n출력\nfalse\ntrue\ntrue\ntrue\n```\n\n---\n# 업데이트(23/04/11)\n## 변경 사항\n`checkAndChange(String)` -\u003e `change(String)`로 메소드명칭이 변경되었습니다.\n\n\n## 추가 사항\n### change(String, String[])\n- 리턴 타입 : String\n- 파라미터 : `(필터링할 텍스트, 확인할 특수기호)`\n- 설명 : 받은 텍스트에 욕설중간에 특수기호등으로 넣어두어도 필터링하는 기능\n\n#### 예시 코드\n**필터링될 문자는 욕설로 대체합니다.**\n```java\nBadWordFiltering filtering = new BadWordFiltering();\nSystem.out.println(filtering.change(\"욕_설\", new String[] {\"_\"}));\n\n출력\n***\n```\n\n### readURL(URL, String, boolean)\n- 리턴 타입 : void\n- 파라미터\n```\n링크(URL): 욕설 리스트가 정리되어 있는 링크\n\n기호(String): 잘라낼 기준의 기호들 (예시: \"+-\"일때 \"+\", \"-\"기준으로 잘라냄) (기본값: 공백)\n\n양끝 공백 허용(boolean): 양끝 공백을 제거 허용 (기본: true)\n```\n- 관련 메소드\n```java\nreadURL(URL): 기호와 양끝 공백를 기본값으로 사용 \nreadURL(URL, String): 양끝 공백을 기본값으로 사용\nreadURL(URL, boolean): 기호를 기본값으로 잘라내기\nreadURL(String): URL타입이 아닌 String 타입으로 입력\nreadURL(String, String): URL과 동일\nreadURL(String, boolean): URL과 동일\nreadURL(String, String, boolean): URL과 동일\n```\n- 설명: 욕설이 적혀있는 파일를 읽은뒤에 잘라낼 기호의 기준으로 잘라내어 단어를 추가하는 로직\n\n#### 코드 예시\n```java\nBadWordFiltering filtering = new BadWordFiltering();\nString url = \"https://raw.githubusercontent.com/PersesTitan/BadWordFiltering/master/badwords.txt\";\n// ex1)\nfiltering.readURL(url, \",\");\n// ex2)\nfiltering.readURL(new URL(url), \",\");\n```\n\n### readFile(File, String, boolean)\n- 리턴 타입 : void\n- 파라미터\n```\nfile(File): 욕설 리스트가 정리되어 있는 파일\n\n기호(String): 잘라낼 기준의 기호들 (예시: \"+-\"일때 \"+\", \"-\"기준으로 잘라냄) (기본값: 공백)\n\n양끝 공백 허용(boolean): 양끝 공백을 제거 허용 (기본: true)\n```\n- 관련 메소드\n```java\nreadFile(File): 기호와 양끝 공백를 기본값으로 사용\nreadFile(File, String): 양끝 공백을 기본값으로 사용\nreadFile(File, boolean): 기호를 기본값으로 잘라내기\nreadFile(String): File타입이 아닌 String 타입으로 경로 입력\nreadFile(String, String): File과 동일\nreadFile(String, boolean): File과 동일\nreadFile(String, String, boolean): File과 동일\n```\n- 설명: 욕설이 적혀있는 링크를 읽은뒤에 잘라낼 기호의 기준으로 잘라내어 단어를 추가하는 로직\n\n#### 코드 예시\n```java\nBadWordFiltering filtering = new BadWordFiltering();\n\nString filePath = \"badwords.txt\";\n// ex1)\nfiltering.readFile(filePath, \",\");\n// ex2)\nfiltering.readFile(new File(filePath), \",\");\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVaneProject%2Fbad-word-filtering","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FVaneProject%2Fbad-word-filtering","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FVaneProject%2Fbad-word-filtering/lists"}