回答
這取決於你定義爲特殊字符,但嘗試replaceAll(...)
:
String result = yourString.replaceAll("[-+.^:,]","");
注意,^
字符不能在列表中的第一個,因爲你那麼要麼逃跑呢或者它意味着「除這些字符以外的任何字符」。
另注:-
字符必須是列表中的第一個或最後一個,否則你不得不逃避它或將它定義了一個範圍(例如:-,
將意味着「範圍內的所有字符:
到,
)
因此,爲了保持一致性而不依賴於字符定位,您可能希望轉義所有那些在正則表達式中具有特殊含義的字符(以下列表不完整,因此請注意其他字符如(
,{
,$
等):
String result = yourString.replaceAll("[\\-\\+\\.\\^:,]","");
如果你想擺脫所有的標點和符號的,試試這個正則表達式:\p{P}\p{S}
(記住,Java中的字符串,你不得不逃回斜線:"\\p{P}\\p{S}"
)。
第三種方法可以是這樣的,如果你能確切地定義什麼應該在你的字符串中左起:
String result = yourString.replaceAll("[^\\w\\s]","");
這意味着:代替一切,是不是一個單詞字符(AZ在任何情況下, 0-9或_)或空格。
編輯:請注意,有一些其他模式可能會有幫助。但是,我無法全部解釋它們,因此請參閱regular-expressions.info的參考部分。
這裏的限制較少的替代品「定義允許的字符」的方法,如建議由雷:
String result = yourString.replaceAll("[^\\p{L}\\p{Z}]","");
正則表達式匹配的一切,這是不以任何語言的信,而不是一個分隔符(空格,換行符等)。請注意,您不能使用[\P{L}\P{Z}]
(大寫字母P表示不具有該屬性),因爲這意味着「所有不是字母或空格」,幾乎匹配所有內容,因爲字母不是空格,反之亦然。
上的Unicode
附加信息的一些Unicode字符似乎會由於不同的可能的方式來對其進行編碼(作爲單個碼點或代碼點的組合)的問題。有關更多信息,請參閱regular-expressions.info。
嘗試replaceAll()
方法的String
類。
BTW這裏是方法,返回類型和參數。
public String replaceAll(String regex,
String replacement)
例子:
String str = "Hello +-^ my + - friends^^^-- ^^^ +!";
str = str.replaceAll("[-+^]*", "");
應該刪除所有{ '^', '+', ' - '},你想刪除字符!
在Java中使用String.replaceAll()
方法。 replaceAll應該足夠適合您的問題。
如這裏所描述 http://developer.android.com/reference/java/util/regex/Pattern.html
模式被編譯的正則表達式。在許多情況下,如
String.matches
,String.replaceAll
和String.split
等便利方法將是更可取的,但如果您需要使用相同的正則表達式進行大量工作,則編譯一次並重用它可能會更有效。 Pattern類及其伴侶Matcher也提供比String暴露的少量更多的功能。
public class RegularExpressionTest {
public static void main(String[] args) {
System.out.println("String is = "+getOnlyStrings("!&(*^*(^(+one(&(^()(*)(*&^%$#@!#$%^&*()("));
System.out.println("Number is = "+getOnlyDigits("&(*^*(^(+91-&*9hi-639-0097(&(^("));
}
public static String getOnlyDigits(String s) {
Pattern pattern = Pattern.compile("[^0-9]");
Matcher matcher = pattern.matcher(s);
String number = matcher.replaceAll("");
return number;
}
public static String getOnlyStrings(String s) {
Pattern pattern = Pattern.compile("[^a-z A-Z]");
Matcher matcher = pattern.matcher(s);
String number = matcher.replaceAll("");
return number;
}
}
結果
String is = one
Number is = 9196390097
您可以刪除單個字符如下:
String str="+919595354336";
String result = str.replaceAll("\\\\+","");
System.out.println(result);
OUTPUT:
919595354336
如果你只是WA nt在java中進行文字替換,使用Pattern.quote(string)
將任何字符串轉義爲文字。
myString.replaceAll(Pattern.quote(matchingStr), replacementStr)
要刪除專責事務字符
字符串T2 = 「@#$%^ * &() - ';!?,/> < + abdd」;
t2 = t2.replaceAll(「\\ W +」,「」);
輸出將是:abdd。
這個效果很好。
這將替換所有字符,除了字母數字
replaceAll("[^A-Za-z0-9]","");
- 1. 如何從字符串中刪除特殊字符
- 2. 如何從字符串中刪除特殊字符並創建新字符串?
- 3. 從R中的字符串中刪除所有特殊字符?
- 4. 從excel中刪除指定字符串中的特殊字符
- 5. 從Bash中的字符串中刪除所有特殊字符
- 6. R如何刪除字符串中的特殊字符?
- 7. 如何從具有多種特殊字符的字符串中刪除特定的特殊字符
- 8. 從阿拉伯文字符串c中刪除特殊字符#
- 9. 從插入的字符串中刪除特殊字符?
- 10. Python /從字符串中刪除特殊字符
- 11. Zend:從字符串中刪除特殊字符
- 12. 從字符串中刪除的特殊字符的jQuery
- 13. 從字符串中刪除空格和特殊字符
- 14. 如何刪除帶有特殊字符的字符串結尾?
- 15. 如何從字符串中刪除特殊字符,如單引號?
- 16. PHP代碼字符串替換特殊字符刪除字符
- 17. 從字符串末尾刪除特殊字符
- 18. 如何從java中的字符串中刪除所有特殊字符?
- 19. 從URL中刪除特殊字符
- 20. 從URL中刪除特殊字符.htaccess
- 21. 從powershell中刪除特殊字符
- 22. 從teradata coloumn中刪除特殊字符
- 23. 在Python中刪除字符串中的特殊字符
- 24. 刪除R中字符串中的特殊字符
- 25. 在.htaccess中刪除查詢字符串中的特殊字符
- 26. 刪除特殊字符
- 27. 特殊字符刪除'sed'
- 28. 刪除特殊字符?
- 29. 刪除fscanf字符串中的特殊字符C
- 30. 刪除字符串中的特殊字符
你顯然已經知道什麼是正則表達式是基於你如何標記你的問題。你有沒有嘗試閱讀'String'類的文檔?特別是,查找「正則表達式」一詞;有幾種方法,有點想法應該告訴你如何繼續...... :) –
「特殊字符」這個短語被過度使用,幾乎完全沒有意義。如果你的意思是,「我有這個**特定**字符的列表,我想刪除」,然後按照托馬斯的建議,用正則表達式字符類和'replaceAll'形成你的模式。如果您有更深奧的要求,請編輯問題。 :) –
那些不是特殊字符... 這些是:äâêíìéè,因爲它們不是你常見的1字節字符類型,例如 - + ^是...... 無論如何,正如Ray所說的,要麼爲他們做一個'replaceAll',要麼對字符串進行解析,把不是你想要取出的字符的字符添加到另一個字符串中,最後只需要對你要返回的字符串進行+ =。 –