⑴ java 字元串中亂碼過濾
new String(str.getBytes(),"GBK");
用這方帶禪孫法,把亂碼正確顯示蠢鏈。當然襲態編碼要自己設
⑵ java io 讀入文件 怎麼過濾特殊字元
可考慮將文件裝換為流來處理,或者將文件讀取到的字元串轉換為byte數組來處理
以byte單位,
根據byte的范圍來確認是否是特殊字元,替換為空字元。
或者使用正則匹配文件讀取到的字元串,替換為空字元。
⑶ 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解決一個字元串數組過濾的問題,要求效率盡量快.
中文分詞應該屬於另外一個大范疇,我就沒考慮了。
僅僅是盡快濾出之前沒有的詞,
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 正則過濾字元串穿中的數字開頭字元
可以。Java正則表達式:32="1"\s+59="0000"
完整的程序如下:
publicclassLL{
publicstaticvoidmain(String[]args){
Strings="<root><users><userid="2739751"ccted="0000000000"32="1"59="0000"name="張非"備激></user></users></root>";
System.out.println(s.replaceAll("32="1"\s+59="0000"",""臘滾神輪虧));
}
}
運行結果:
<root><users><user id="2739751" ccted="0000000000" name="張非"></user></users></root>
⑹ java里如何從一個字元串里過濾掉一個子串
通過replaceAll方法進行替換,也就是說將「子串」替換為空,舉例:
String str = "aaaaaabaaaabaaa".replaceAll("b", "");//第一個參數是需要被替換的內容,第二個是被替換成的內容
System.out.print(str);//輸出替換後的結果
結果就是:aaaaaaaaaaaaa。
⑺ JAVA特殊字元過濾方法
public static String StringFilter(String str) throws PatternSyntaxException {
// 只允許字母和數字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字元
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】『;:」「』。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
⑻ java 處理輸入字元串中的每一行,如果行首為'<'字元,則將此行過濾掉
String str = "<1231231";
str = str.replace("<","");
方法就是這樣神納,具體替換什棚晌么位置游和沒自己寫判斷語句就可以了
⑼ java 字元串過濾
int index = path.lastIndexOf(path);
String filename = path.substring(index + 1);
這個只是一個思路,還需要lz自己孫罩考慮一些亮族異常情則鍵鬧況的處理
⑽ java如何去除字元串中重復的字元
lz 你好
這個就是一個比較簡單的演算法題 , 你可以自己寫
但是用Java語言就不需要了 , Java自帶泛型相關的類 , 很有用
其中TreeSet集合能自動識別添加的是否重復 , 重復的將不會添加 , 很方便
以下是實現代碼:
import java.util.List;
import java.util.Scanner;
public class DeleteRepeated {
private String str;
private TreeSet<String> noReapted;//帶有String類型的TreeSet泛型
public DeleteRepeated() {
Scanner in = new Scanner(System.in);
System.out.println ("輸入一個字元串:");
str = in.nextLine();
noReapted = new TreeSet();
}
//清楚重復的數據
public void removeRepeated(){
for (int i = 0; i < str.length(); i++){
noReapted.add(""+str.charAt(i));
//str.charAt(i)返回的是char型 所以先加一個""空格 , 轉換成String型
//TreeSet泛型能保證重復的不加入 , 而且有序
}
str = "";
for(String index:noReapted){
str += index;
}
//輸出
System.out.println (str);
}
public static void main(String[] args) {
DeleteRepeated dr = new DeleteRepeated();
dr.removeRepeated();
}
}