자바 민감 문자 처리 클래스,기능 이 매우 강력 합 니 다.
3213 단어 Java자바 도구 클래스 집합
중국 을 개원 하 는 기초 위 에서 일부 방법 을 늘리다
apache 에 의존 하 는 io 와 lang 패키지
package com.wiker;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import org.apache.commons.lang.StringUtils;
/**
*
* @author Wiker
* @date 2010-1-11 10:51:30
*/
public class BadWord {
private final static File wordfilter = new File("C:/wordfilter.txt");
private static long lastModified = 0L;
private static List words = new ArrayList();
private static void checkReload(){
if(wordfilter.lastModified() > lastModified){
synchronized(BadWord.class){
try{
lastModified = wordfilter.lastModified();
LineIterator lines = FileUtils.lineIterator(wordfilter, "utf-8");
while(lines.hasNext()){
String line = lines.nextLine();
if(StringUtils.isNotBlank(line))
words.add(StringUtils.trim(line).toLowerCase());
}
}catch(IOException e){
e.printStackTrace();
}
}
}
}
/**
*
* @param contents
*/
public static String check(String ...contents) {
if(!wordfilter.exists())
return null;
checkReload();
for(String word : words){
for(String content : contents)
if(content!=null && content.indexOf(word) >= 0)
return word;
}
return null;
}
/**
*
*
* @param content
* @return
*/
public static boolean isContain(String content) {
if(!wordfilter.exists())
return false;
checkReload();
for(String word : words){
if(content!=null && content.indexOf(word) >= 0)
return true;
}
return false;
}
/**
*
*
* @param str
* @param replaceChar
* @return
*/
public static String replace(String str,String replaceChar){
checkReload();
for(String word : words){
if(str.indexOf(word)>=0){
String reChar = "";
for(int i=0;i lists() {
checkReload();
return words;
}
/**
*
*
* @param word
* @throws IOException
*/
public static void add(String word) throws IOException {
word = word.toLowerCase();
if(!words.contains(word)){
words.add(word);
FileUtils.writeLines(wordfilter, "UTF-8", words);
lastModified = wordfilter.lastModified();
}
}
/**
*
*
* @param word
* @throws IOException
*/
public static void delete(String word) throws IOException {
word = word.toLowerCase();
words.remove(word);
FileUtils.writeLines(wordfilter, "UTF-8", words);
lastModified = wordfilter.lastModified();
}
public static void main(String[] args) throws Exception{
System.out.println(BadWord.replace(" ","*"));
System.out.println(BadWord.isContain(" "));
BadWord.add(" ");
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.