java关键字过滤算法
❶ 求 JAVA 字符串匹配 完美算法
只需要实例化 类Matching 设置参数 并调用m.getIndex()方法就OK 请测试... public class Test18{
public static void main(String[] args){
Matching m = new Matching();
m.setOrgStr("ALSKLSHFKDLLS");
m.setSubStr("LS");
System.out.println(m.getIndex());
}
}
class Matching{
String orgStr ="";
String subStr ="";
public void setOrgStr(String orgStr){
this.orgStr = orgStr;
}
public void setSubStr(String subStr){
this.subStr = subStr;
}
public String getIndex(){
StringBuffer sb = new StringBuffer("{");
//根据关键字subStr来拆分字符串orgStr所得的字符串数组
String[] sub = orgStr.split(subStr);
int keyLength = subStr.length(); //关键字长度
int keySize = 0; //关键字个数
int subSize = sub.length; //子字符串个数
int subLength = 0; //子字符串长度
if(!orgStr.endsWith(subStr)){
keySize = subSize-1;
}else
keySize = subSize; int[] index = new int[keySize];//关键字下标数组
for(int i=0;i<keySize;i++){
subLength = sub[i].length();
if(i==0){
index[i]=subLength;
}else
index[i]=index[i-1]+subLength+keyLength;
}
if(keySize>0){
int l = keySize-1;
for(int i=0;i<l;i++){
sb.append(index[i]+",");
}
sb.append(index[l]);//最后一个关键字下标
}else{
sb.append("NULL");
}
sb.append("}");
return sb.toString();
}
}
❷ 求高效率的 java+mysql 关键字过滤代码
你金币都不奖,叫别人出力,可能吗?我也想要啊。。。
❸ 求过滤关键字的正则表达式JAVA
String str="fa证迷袭";
String regEx="[^办证迷药]*";
boolean flag=str.matches(regEx);
System.out.println(flag);
❹ java关键字查询算法
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
public class search
{
//查找方法,参数,文件绝对路径,查找关键字
public static boolean search(String filepath,String key)
{
try
{
File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
//int i = 1;
while((s = br.readLine()) != null)
{
if(s.indexOf(key) != -1)
{
return true;
}
}
return false;
}
catch(Exception e)
{
e.printStackTrace();
return false;
}
}
public static void main(String args[])
{
System.out.println(search.search("d://t.txt","l2"));
}
}
修改了下,加两个变量,可以指出查找的位置。
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
public class search
{
//查找方法,参数,文件绝对路径,查找关键字
public static String search(String filepath,String key)
{
try
{
File f = new File(filepath);
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
String s = "";
int i = 1;
int m = 0;
while((s = br.readLine()) != null)
{
if((m = s.indexOf(key)) != -1)
{
return "第"+i+"段,第"+m+"处";
}
i++;
}
return null;
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
public static void main(String args[])
{
System.out.println(search.search("d://t.txt","asd"));
}
}
这个,查汉字是没有问题的。
另外,你要全文检索的话,indexOf()还有个方法,indexOf(int start,String key),指定开始查找的位置跟关键字,你查到一处后,将这个数值加1,做为继续查找的开始位置就可以了。
❺ java编程 如何让实现过滤 “脏字”
只能枚举你要过滤的所有“脏字”了。最好写在一个文件里面,不要直接用数组。
写个类完成将“脏字”替换为“*”号的逻辑。
加个过滤器,拦截提交留言的请求,并调用逻辑。
❻ 高分求一个使用Java Hashtable的关键字过滤小程序
这个应该就是你想要达到的效果吧 ??
添加了个程序运行时间,不过像这样的一点文本,一般几乎不会用时间的
import java.util.Hashtable;
public class TestStr {
public static boolean getStr(String text,String str[]){
Hashtable map=new Hashtable();
char c[]=text.toCharArray();
for (int i = 0; i < str.length; i++) {
map.put(str[i].trim(), str[i].trim());
}
int count=0;
for (int i = 0; i < c.length; i++) {
if(map.get(c[i]+"")!=null){
count++;
}
}
System.out.println("关键字出现次数"+count);
return count > 0;
}
public static void main(String[] args) {
//预设的文本内容
String text=aa@bb%cc*dd$;
//预设的关键字
String str[]={"@","%","*","$"};
double start = System.currentTimeMillis() ;
boolean bl=TestStr.getStr(text, str);
double end = System.currentTimeMillis();
System.out.println("查询执行时间: " + (end - start));
if(bl){
System.out.println("文本中出现关键字");
}else{
System.out.println("文本中未出现关键字");
}
}
}
❼ 在JAVA中怎么实现关键字过滤
自己判断一下, 字符串中是否包含某个关键字即可, String.contains(CharSequence s) 如果存在返回true, 否则返回false
❽ 短信关键字过滤算法有哪些
bool CKeyWordManager::find(const std::string &key){ for (int n = 0; n < key.length (); ++n) { for (int i = 1; i < m_keyWordMaxLength && i + n < key.length (); ++i) { set <string>::iterator it = m_keWordList.find (key.substr (n, i)); if (it != m_keyWordList.end ()) return true; } } return false;}