簡體   English   中英

從字符串中刪除空格和特殊字符

[英]Remove spaces and special characters from string

如何格式化字符串電話號碼以刪除特殊字符和空格?

該號碼的格式如下(123)123 1111

我想讓它看起來像這樣:1231231111

到目前為止我有這個:

phone = phone.replaceAll("\\s","");
phone = phone.replaceAll("(","");

第一行將刪除空格。 然后我無法刪除括號。 Android工作室強調"("並拋出錯誤unclosed group

您可以刪除除數字之外的所有內容:

phone = phone.replaceAll("[^0-9]","");

刪除可以使用的所有非數字字符

replaceAll("\\D+",""); \\ \D is negation of \d (where \d represents digit) 

如果你只想刪除空格, ()你可以定義自己的角色類

replaceAll("[\\s()]+","");

無論如何,你的問題是由正則表達式中的一些字符是特殊的事實引起的。 其中有(例如可以表示組的開始。類似地)可以表示組的結束。

要制作這樣的特殊字符文字,您需要轉義它們。 你可以做很多事

  • "\\\\(" - 正則表達式中的標准轉義
  • "[(]" - 使用字符類轉義
  • "\\\\Q(\\\\E" - \\Q\\E創建引號 - 這意味着此區域中的正則表達式元字符應視為簡單字面值
  • Pattern.quote("(")) - 此方法在regex編譯器中使用Pattern.LITERAL標志指出正則表達式中使用的元字符是簡單的文字,沒有任何特殊含義

你需要在正則表達式中轉義(因為它表示元字符(組的開頭)。相同)

phone = phone.replaceAll("\\(","");
public static void main(String[] args){
    // TODO code application logic here
  String str = "(test)";
  String replaced= str.replaceAll("\\(", "").replaceAll("\\)", "");
  System.out.println(replaced);


}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM