在 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
谢谢。
编辑
我上面提供的字符串只是一个例子。字符串中可能还有其他字符。例如,字符 /
或 \
本身是完全有效的。问题是 /
显示为 \/
.
在使用字符串 replaceAll 方法设置文本之前,您必须替换所有出现的 \:
textView.setText(text.replaceAll("\", ""));
@Numan1617的答案很接近,但是对于转义字符和replaceAll()
,你必须转义它们两次。
参见This Post。
所以,在这种情况下正确的代码是:
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
运行 这就是普通的 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() 中的一个 \
在我制作的 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
谢谢。
编辑
我上面提供的字符串只是一个例子。字符串中可能还有其他字符。例如,字符 /
或 \
本身是完全有效的。问题是 /
显示为 \/
.
在使用字符串 replaceAll 方法设置文本之前,您必须替换所有出现的 \:
textView.setText(text.replaceAll("\", ""));
@Numan1617的答案很接近,但是对于转义字符和replaceAll()
,你必须转义它们两次。
参见This Post。
所以,在这种情况下正确的代码是:
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
运行 这就是普通的 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() 中的一个 \