An open API service indexing awesome lists of open source software.

https://github.com/VaneProject/bad-word-filtering

욕설, 비속어등을 확인하고 처리하는 라이브러리 입니다. 필터링용 욕설및 비속어가 보일 수 있으니 참고해주세요.
https://github.com/VaneProject/bad-word-filtering

gradle java library maven mit

Last synced: 6 days ago
JSON representation

욕설, 비속어등을 확인하고 처리하는 라이브러리 입니다. 필터링용 욕설및 비속어가 보일 수 있으니 참고해주세요.

Awesome Lists containing this project

README

          

# BadWordFiltering

주의


비속어, 욕을 다루는 라이브러리인 많큼 코드에 욕과 비속어가 보일 수 있습니다. 양해부탁드립니다.


현재 라이브러리에 단어를 추가중입니다. 관심이 있으신 분은 아래 링크를 통하여 단어 추가에 협력부탁드립니다.

[욕/비속어 코드 링크 바로가기](https://github.com/VaneProject/bad-word-filtering/blob/master/src/main/java/com/vane/badwordfiltering/BadWords.java)

### 블로그
- [[Java] BadWordFiltering (욕, 비속어 필터 라이브러리)](https://persestitan.tistory.com/70)
- [[Java] BadWordFiltering 2 (욕설 필터링 라이브러리)](https://persestitan.tistory.com/71)
- [[Java] BadWordFiltering 3 (라이브러리 배포 안내)](https://persestitan.tistory.com/115)

### 라이브러리
maven
```xml

io.github.vaneproject
badwordfiltering
1.0.0

```

gradle
```groovy
implementation 'io.github.vaneproject:badwordfiltering:1.0.0'
```

gradle (Kotlin)
```kotlin
implementation("io.github.vaneproject:badwordfiltering:1.0.0")
```




# 생성자

```java
BadWordFiltering badWordFiltering = new BadWordFiltering();
```
```java
BadWordFiltering badWordFiltering = new BadWordFiltering(String);
```

# 메소드
### add()
리턴타입: void

설명: 라이브러리에서 지원하는 단어중에 원하는 단어가 없을 경우 해당 메소드를 사용하여 추가할 수 있습니다.

```java
badWordFiltering.add(String[]);
badWordFiltering.add(List);
badWordFiltering.add(Set);
```

### remove()
리턴타입: void

설명: 라이브러리에서 지원하는 단어 중 필터링이 되면 안돼는 단어가 있을 경우 해당 메소드를 사용하여 필터링 단어에서 제거 하실 수 있습니다.

```java
badWordFiltering.remove(String[]);
badWordFiltering.remove(List);
badWordFiltering.remove(Set);
```

### checkAndChange(String)
리턴타입: String

설명: 매개변수에 라이브러리에서 지원하는 단어가 포함되어있을 경우 욕/비속어가 특정 문자로 대체된 값을 반환합니다.

특정문자 : 생성자를 쓸때 값을 넣으면 그 값이 적용이 되며, 기본값으로는 * 입니다.

```java
String test = "문장...";
badWordFiltering.checkAndChange(test);

System.out.println(test);

출력
욕/비속어가 대체되어서 나온 문장
```

### check(String)
리턴타입: boolean

설명: 비속어/욕이 포함되어있을 경우 true를 반환하고 포함하지 않으면 false를 반환합니다.

```java
boolean test = badWordFiltering.check("문장...");
if (test) {
(...)
}
```

### blankCheck(String)
리턴타입: boolean

설명: 욕/비속어가 띄어쓰기로 나누어져있어도 띄어쓰기를 무시하고 체크를 합니다. 만약 존재하면 true를 반환하고 없다면 false를 반환합니다.

```java
boolean test = badWordFiltering.blankCheck("문장...");
if (test) {
(...)
}
```

# 동작 예제
욕은 '욕설'로 대체하여 사용합니다.

### change와 생성자
```java
Sring bad = "욕설을 욕설 말하는 중";
BadWordFiltering badWordFiltering1 = new BadWordFiltering();
BadWordFiltering badWordFiltering2 = new BadWordFiltering("-");

String text1 = badWordFiltering.change(bad); //기본값 *
String text2 = badWordFiltering.change(bad); //입력값 -
System.out.println(text1);
System.out.println(text2);

출력
**을 ** 말하는 중
--을 -- 말하는 중
```




### check와 blankCheck
```java
Sring bad1 = "욕 설";
Sring bad2 = "욕설";
BadWordFiltering badWordFiltering1 = new BadWordFiltering();

boolean bool1 = badWordFiltering.check(bad1); //욕 설
boolean bool2 = badWordFiltering.blankCheck(bad1); //욕 설
boolean bool3 = badWordFiltering.check(bad2); //욕설
boolean bool4 = badWordFiltering.blankCheck(bad2); //욕설
System.out.println(text1);
System.out.println(text2);
System.out.println(text3);
System.out.println(text4);

출력
false
true
true
true
```

---
# 업데이트(23/04/11)
## 변경 사항
`checkAndChange(String)` -> `change(String)`로 메소드명칭이 변경되었습니다.

## 추가 사항
### change(String, String[])
- 리턴 타입 : String
- 파라미터 : `(필터링할 텍스트, 확인할 특수기호)`
- 설명 : 받은 텍스트에 욕설중간에 특수기호등으로 넣어두어도 필터링하는 기능

#### 예시 코드
**필터링될 문자는 욕설로 대체합니다.**
```java
BadWordFiltering filtering = new BadWordFiltering();
System.out.println(filtering.change("욕_설", new String[] {"_"}));

출력
***
```

### readURL(URL, String, boolean)
- 리턴 타입 : void
- 파라미터
```
링크(URL): 욕설 리스트가 정리되어 있는 링크

기호(String): 잘라낼 기준의 기호들 (예시: "+-"일때 "+", "-"기준으로 잘라냄) (기본값: 공백)

양끝 공백 허용(boolean): 양끝 공백을 제거 허용 (기본: true)
```
- 관련 메소드
```java
readURL(URL): 기호와 양끝 공백를 기본값으로 사용
readURL(URL, String): 양끝 공백을 기본값으로 사용
readURL(URL, boolean): 기호를 기본값으로 잘라내기
readURL(String): URL타입이 아닌 String 타입으로 입력
readURL(String, String): URL과 동일
readURL(String, boolean): URL과 동일
readURL(String, String, boolean): URL과 동일
```
- 설명: 욕설이 적혀있는 파일를 읽은뒤에 잘라낼 기호의 기준으로 잘라내어 단어를 추가하는 로직

#### 코드 예시
```java
BadWordFiltering filtering = new BadWordFiltering();
String url = "https://raw.githubusercontent.com/PersesTitan/BadWordFiltering/master/badwords.txt";
// ex1)
filtering.readURL(url, ",");
// ex2)
filtering.readURL(new URL(url), ",");
```

### readFile(File, String, boolean)
- 리턴 타입 : void
- 파라미터
```
file(File): 욕설 리스트가 정리되어 있는 파일

기호(String): 잘라낼 기준의 기호들 (예시: "+-"일때 "+", "-"기준으로 잘라냄) (기본값: 공백)

양끝 공백 허용(boolean): 양끝 공백을 제거 허용 (기본: true)
```
- 관련 메소드
```java
readFile(File): 기호와 양끝 공백를 기본값으로 사용
readFile(File, String): 양끝 공백을 기본값으로 사용
readFile(File, boolean): 기호를 기본값으로 잘라내기
readFile(String): File타입이 아닌 String 타입으로 경로 입력
readFile(String, String): File과 동일
readFile(String, boolean): File과 동일
readFile(String, String, boolean): File과 동일
```
- 설명: 욕설이 적혀있는 링크를 읽은뒤에 잘라낼 기호의 기준으로 잘라내어 단어를 추가하는 로직

#### 코드 예시
```java
BadWordFiltering filtering = new BadWordFiltering();

String filePath = "badwords.txt";
// ex1)
filtering.readFile(filePath, ",");
// ex2)
filtering.readFile(new File(filePath), ",");
```