Ⅰ java里如何從一個字元串里過濾掉一個子串
通過replaceAll方法進行替換,也就是說將「子串」替換為空,舉例:
String str = "aaaaaabaaaabaaa".replaceAll("b", "");//第一個參數是需要被替換的內容,第二個是被替換成的內容
System.out.print(str);//輸出替換後的結果
結果就是:aaaaaaaaaaaaa。
Ⅱ 如何判別欄位中是否包含了emojicon表情以及過濾相關內容
<span style="font-family: Arial, Helvetica, sans-serif;">過濾該表情</span>
[java] view plain
public static String filterEmoji(String source) {
if (!containsEmoji(source)) {
return source;// 如果不包含,直接返回
}
StringBuilder buf = null;
int len = source.length();
for (int i = 0; i < len; i++) {
char codePoint = source.charAt(i);
if (!isEmojiCharacter(codePoint)) {
if (buf == null) {
buf = new StringBuilder(source.length());
}
buf.append(codePoint);
} else {
}
}
if (buf == null) {
return "";
} else {
if (buf.length() == len) {// 這里的意義在於盡可能少的toString,因為會重新生成字元串
buf = null;
return source;
} else {
return buf.toString();
}
}
}
[java] view plain
// 判別是否包含Emoji表情
private static boolean containsEmoji(String str) {
int len = str.length();
for (int i = 0; i < len; i++) {
if (isEmojiCharacter(str.charAt(i))) {
return true;
}
}
return false;
}
private static boolean isEmojiCharacter(char codePoint) {
return !((codePoint == 0x0) ||
(codePoint == 0x9) ||
(codePoint == 0xA) ||
(codePoint == 0xD) ||
((codePoint >= 0x20) && (codePoint <= 0xD7FF)) ||
((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) ||
((codePoint >= 0x10000) && (codePoint <= 0x10FFFF)));
}
Ⅲ android怎樣過濾字元串中的emoji表情
對於字元串處理,首選就是正則表達式去處理,而在android系統中可以自定義InputFilter去過濾需要處理掉的字元串,代碼如下
InputFilter emojiFilter = new InputFilter ( ) {
@Override
public CharSequence filter ( CharSequence source , int start , int end , Spanned dest , int dstart ,
int dend ) {
}
} ;
隨後我查閱了 emoji 的wikipedia與 Github ,從中提取出表情的一個大概unicode范圍,由於Java可以直接對unicode進行匹配,這樣我們可以很省事直接寫出Pattern即可,代碼如下
InputFilter emojiFilter = new InputFilter ( ) {
Pattern emoji = Pattern . compile (
"[\ud83c\udc00-\ud83c\udfff]|[\ud83d\udc00-\ud83d\udfff]|[\u2600-\u27ff]" ,
Pattern . UNICODE_CASE | Pattern . CASE_INSENSITIVE ) ;
@Override
public CharSequence filter ( CharSequence source , int start , int end , Spanned dest , int dstart ,
int dend ) {
Matcher emojiMatcher = emoji . matcher ( source ) ;
if ( emojiMatcher . find ( ) ) {
return "" ;
}
return null ;
}
} ;
基本上這樣就能過濾掉emoji表情了
Ⅳ java如何判斷字元串中含有表情符號
比如你需要有一組表情符號的字典:
類似String bq={"^V^","D:"};
要判斷的字元串為str="^V^D:1221dsa";
然後用str.indexOf(bq[i]) 去遍歷字典表
如果返回值是大於等於0的 那麼就含有該表情符號
Ⅳ java正則表達式過濾特殊字元
Stringregexp="[^'"%]*";
Stringstring="abc%";
System.out.println(string.matches(regexp));
Ⅵ java過濾特殊字元的問題
"+"在URL中會被當作空格處理。
必須使用URLEncoder將其變成URL編碼。
或者使用 javascript 的 encodeURIComponent(url) 函數對URL進行編碼轉換。
Ⅶ 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 = "*(^YUIGHUGU^^&*()*6哈哈89324328uewh~!@#$%^&*()_+,./<>?;':[]\\{}|-=";//要過濾的字元串
str = str.replaceAll("[\\pP|~|$|^|<|>|\\||\\+|=]*", "");
System.out.println(str);
輸出內結果容:YUIGHUGU6哈哈89324328uewh
Ⅸ 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中如何過濾字元串裡面特殊字元
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);
}
}