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