在我制作的Android应用中,我以编程方式构建TextView
并将String
传递给setText
。字符串传递是从另一个源获取的,它包含转义字符。这是一个示例String:
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
感谢。
修改
我上面提供的字符串只是一个例子。字符串中可能还有其他字符。例如,字符/
或\
本身就完全有效。问题是/
显示为\/
。
答案 0 :(得分:1)
来自@ 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
答案 1 :(得分:0)
在使用Strings replaceAll方法设置文本之前,您必须替换所有出现的\:
textView.setText(text.replaceAll("\\", ""));
答案 2 :(得分:0)
以普通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()中等于1 \