簡體   English   中英

替換字符串中的特殊字符

[英]Replace special character from String

我正在打印一個String str =\\'abc\\' 它的打印像\\'abc'\\而不是'abc'

我已經嘗試過此選項: str.replaceAll("\\\\", ""); 但它給了我java.util.regex.PatternSyntaxException:索引1附近發生意外的內部錯誤

任何人都可以幫助解決此問題。

為什么使用正則表達式可以執行以下操作:

str = str.replace("\\", ""); 

如果必須使用正則表達式,則需要使用:

str = str.replace("\\\\", ""); 

由於String和regex引擎bot需要轉義,因此regex在Java中需要兩次轉義。

您的方法:

private static String getNewString(String str) { 
      str.replaceAll("\\\\", ""); 
      System.out.println("The updated String : "+str); 
      return str; 
}

將返回初始字符串,因為字符串是不可變的。 str.replaceAll將按原樣保留str並將生成一個新字符串。

將您的測試用例更改為此:

    public static void main(String ...string) { 
        String str = "\\'a\\'"; 
        System.out.println("The original String : "+str); 
        str = getNewString(str); 
    } 

    private static String getNewString(String str) { 
        String rez = str.replaceAll("\\\\", ""); 
        System.out.println("The updated String : "+rez); 
        return rez; 
    } 

我想你的意思是:

公共課程Abc {

public static void main(String[] args) {


    String str ="\'abc\'";

    System.out.println(str);

}

}

輸出:'abc'

對我來說這是正確的。

暫無
暫無

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

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