我有我正在打印的String
str =\'abc\'
。其印刷像\'abc'\
而不是'abc'
。從字符串中替換特殊字符
我已經試過此選項:str.replaceAll("\\", "");
但它給我java.util.regex.PatternSyntaxException:意外內部錯誤接近指數1
誰能幫助解決這個問題。
我有我正在打印的String
str =\'abc\'
。其印刷像\'abc'\
而不是'abc'
。從字符串中替換特殊字符
我已經試過此選項:str.replaceAll("\\", "");
但它給我java.util.regex.PatternSyntaxException:意外內部錯誤接近指數1
誰能幫助解決這個問題。
我想你的意思是:
公共ABC類{
public static void main(String[] args) {
String str ="\'abc\'";
System.out.println(str);
}
}
輸出: 'ABC'
它對我來說是正確的。
public static void main(String [] args){String str =「\'abc \'」;的System.out.println(str.replace( 「\\」, 「」)); }這爲我工作...其實我對我的輸入感到困惑,所以輸入將是'abc',我可以使用replace(「\\」,「」),這將解決我的問題。不管怎麼說,多謝拉 :) – Nikhil
你爲什麼要使用正則表達式,你可以這樣做:
str = str.replace("\\", "");
如果你必須使用正則表達式,那麼你需要使用:
str = str.replace("\\\\", "");
正則表達式需要雙Java中逃脫,因爲字符串和正則表達式引擎機器人需要逃跑。
你的方法:
private static String getNewString(String str) {
str.replaceAll("\\\\", "");
System.out.println("The updated String : "+str);
return str;
}
將返回初始字符串,字符串既然是不可變的。 str.replaceAll將會保持原樣,它會生成一個新的字符串。
測試用例改成這樣:
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;
}
你介意給語言添加標籤嗎?可能是Java,但讓我們確定。 – Bathsheba
是的,它的Java。事情是,我們打印從Java讀取它的C代碼表達式。對於例如char myChar ='a',當這個表達式到達我(Java級別)時,我們得到myChar = \'a \'。所以我們需要打印一樣的「[myChar ='a']」。現在,它的特殊字符印刷。 – Nikhil