簡體   English   中英

在TextView中顯示的轉義字符

[英]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.

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