[英]Escape characters displayed in TextView
在我正在制作的Android應用中,我以編程方式構造TextView
並將String
傳遞給setText
。 我傳遞的字符串是從另一個來源獲得的,它包含轉義字符。 這是一個示例字符串:
AxnZt_35\/435\/46\/34
實際上, \\/
應該只是/
。 但是TextView
完全按照上面的示例顯示整個內容。
我用來構造TextView
的代碼:
TextView textView = new TextView(context);
textView.setText(text);
textView.setTextColor(color);
textView.setTypeface(Typeface.DEFAULT_BOLD);
textView.setTextSize(14);
所以我的問題是,我怎么不顯示多余的\\
? 我只希望上面的示例顯示為:
AxnZt_35/435/46/34
謝謝。
編輯
我上面提供的字符串只是一個示例。 字符串中可能還有其他字符。 例如,字符/
或\\
本身是完全有效的。 問題是/
顯示為\\/
。
@ Numan1617的答案很接近,但是對於轉義字符和replaceAll()
,您必須對它們進行兩次轉義。
請參閱這篇文章 。
因此,在這種情況下,正確的代碼將是:
String str = "AxnZt_35\\/435\\/46\\/34";
System.out.println(str); //prints AxnZt_35\/435\/46\/34
String s2 = str.replaceAll("\\\\/", "/");
System.out.println(s2); //prints AxnZt_35/435/46/34
您必須使用Strings replaceAll方法設置文本之前,替換所有\\的出現:
textView.setText(text.replaceAll("\\", ""));
作為普通Java運行
public class Klass{
public static void main(String[] args) {
System.out.println(new String("\\/"));
System.out.println(new String("\\/").replaceAll("/", ""));
System.out.println(new String("\\/").replaceAll("\\/", ""));
System.out.println(new String("\\/").replaceAll("\\\\/", ""));
}
}
\\的正則表達式為“ \\\\”:在正則表達式中,一對\\等於新String()中的一個\\
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.