❶ java里面如何对一个filter里面的dofilter之后的返回进行操作
如果是返回的数据已经写入到response对象了,是做不到再在filter里对数据进行处理的,可以用struts或springmvc之类的框架,或者在把返回值写入response之前先对数据进行处理。
❷ JAVA,过滤输入的词语,把无关词语过滤掉
packagetest;
publicclassMyTest
{
publicstaticvoidmain(String[]args)
{
答Stringinput="Iwant200balls";
Stringreg="\d";
System.out.println(input.replaceAll(reg,""));
}
}
❸ java 字符串过滤
packagetest;
importjava.util.HashMap;
/**
*maxLength-需要过滤最长字符串的长度
*filterStrs<string,string>-需要过滤字符串的集合,key为需要过滤字符串,value为过滤成的字符串如"*"
*@authorAdministrator
*
*/
publicclassTest{
privateintmaxLength;
privateHashMap<String,String>filterStrs=newHashMap<String,String>();
/**
*初始化需要过滤掉*的数量
*/
privateStringinitStr(intn){
StringBuffersb=newStringBuffer();
for(inti=0;i<n;i++){
sb.append('*');
}
returnsb.toString();
}
/**
*str-被过滤得字符串
*s-需要过滤得字符串
*获得剩下未过滤的字符串
*/
privateStringgetNextStr(Stringstr,intstart,intslength){
if(start==0){
str=str.substring(slength);
}elseif(start+slength<str.length()){
str=str.substring(start+slength);
}
returnstr;
}
/**
*str-被过滤得字符串
*s-需要过滤得字符串
*获得过滤后的字符串
*/
(StringBuffersb,Stringstr,intstart,Strings){
if(start!=0){
sb.append(str.substring(0,start));
}
sb.append(filterStrs.get(s));
returnsb;
}
/**
*str-被过滤的字符串
*过滤,并组合过滤后的字符串
*/
publicStringfilter(Stringstr){
StringBufferresultStr=newStringBuffer();
for(intstart=0;start<str.length();start++){
for(intend=start+1;end<=str.length()&&end<=start+maxLength;end++){
Strings=str.substring(start,end);
intslength=s.length();
if(filterStrs.containsKey(s)){
resultStr=getFilterStr(resultStr,str,start,s);
str=getNextStr(str,start,slength);
start=0;
end=start;
}
}
}
resultStr.append(str);
returnresultStr.toString();
}
publicvoidput(Stringkey){
intkeyLength=key.length();
filterStrs.put(key,initStr(keyLength));
if(keyLength>this.maxLength)
maxLength=keyLength;
}
publicstaticvoidmain(String[]agrs){
Testt=newTest();
t.put("TMD");
t.put("TNND");
t.put("NND");
System.out.println(t.filter("TMD,TNND..TMDTMDTMDTMD.tTNNDTMDTNNDTNNDTNND"));
}
}
❹ java 前后端分离 过滤器怎么写
可以继来承源Filter, 参考http://www.cnblogs.com/xdp-gacl/p/3948353.html
也可以使用其他框架的Filter
❺ java解决一个字符串数组过滤的问题,要求效率尽量快.
中文分词应该属于另外一个大范畴,我就没考虑了。
仅仅是尽快滤出之前没有的词,
import java.util.Comparator;
import java.util.TreeSet;
public class Test {
static public int removeOccurances(StringBuilder buf,String word){
int c=0,p,len=word.length();
for(;(p=buf.indexOf(word))!=-1; c++)
buf.delete(p, p+len);
return c;
}
static public void main(String argv[]){
String a[]={"北京","中国朝阳","北京朝阳","天津包子","中国北京",
"北京烤鸭","中国中国","北京中国饭店","北京北京北京",
"北京朝阳饭店","北京朝阳烤鸭饭店","中国北京朝阳饭店"
};
TreeSet<String> set=new TreeSet<String>(new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
int r=o1.length()-o2.length();
return r==0? o1.compareTo(o2):r;
}
});
StringBuilder buf=new StringBuilder();
for(String w:a){
buf.setLength(0); buf.append(w);
for(String dw:set) removeOccurances(buf, dw);
if(buf.length()>0){
w=buf.toString();
for(String dw:set)
if(buf.length()<dw.length()){
buf.setLength(0); buf.append(dw);
if(removeOccurances(buf, w)>0){
set.remove(dw); set.add(buf.toString());
}
}
set.add(w);
}
}
System.out.print(set);
}
}
===========
[中国, 北京, 朝阳, 烤鸭, 饭店, 天津包子]
效率应该是O(2W*D), W为数组长度,D为有效词数量
把你的算法拿来看看。应该多说自己
❻ java如何替换句子分词后指定词性词语
String a = "我/rr 生活/vi 在/p 北京/ns ";
String x = a.replace("北京","河南");
String中有替换字符串的函数,替换之后将返回一个新的字符串
要是List的话(我用ArrayList做例子)
就你的例子而言
String[] str = new String[3];
for(i = 0;i < list.size();i++)
str[i] = a.replace("北京",list.get(i));
这样就行了
❼ 在JAVA中怎么实现关键字过滤
自己判断一下, 字符串中是否包含某个关键字即可, String.contains(CharSequence s) 如果存在返回true, 否则返回false
❽ java中如何用split过滤中括号
java使用string的split方法来抄过滤中括号,实例如下:
packagecom.qiu.lin.he;
publicclassCeShi{
publicstaticvoidmain(String[]args){
Stringmystr="String[]adfas";
String[]strs=mystr.split("\[]");//因为中括号属于转义字符,应该要进行转义
System.out.println(strs[0]+strs[1]);
}
}
运行结果如下:
❾ JAVA中如何过滤字符串里面特殊字符
class test
{
public static void main(String []args)
{
String a = "1111-22-33 13:15:46",b=new String();
int i,j,t;
for(i=0;i<a.length();i++)
if(a.charAt(i)!='-' && a.charAt(i)!=':' && a.charAt(i)!=' ')
b=b+a.charAt(i);
System.out.println(b);
}
}