❶ 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);
}
}