text = Daily 10 am - 5 pm.\\nClosed Thanksgiving and Christmas.
private String activateNewlines( String text ) {
String temp = text;
if ( text.contains( "\\n") ) {
while ( temp.contains( "\\n" ) ) {
int index = temp.indexOf( "\\n" );
temp = temp.substring( 0, index ) + temp.substring( index + 1 );
}
return temp;
}
return text;
}
我正在尝试为特殊字符删除额外的斜杠,但由于某种原因,子字符串最终会删除正斜杠。 substring不像字符串开头的斜杠吗?最后的字符串最终成为
Daily 10 am - 5 pm.nClosed Thanksgiving and Christmas.
我需要的是
Daily 10 am - 5 pm.\nClosed Thanksgiving and Christmas.
编辑:最终为我工作的是什么:
String temp = text;
if ( text.contains( "\\n") ) {
temp = temp.replaceAll( "\\\\n", "\\\n" );
int x = 5;
return temp;
}
return text;
这实际上允许TextView识别换行符。
答案 0 :(得分:0)
我有点困惑,但是到了。因此,"\n"
是一个新行。 "\\n"
是反斜杠,n是\n
。你可以使用replaceAll来摆脱它:string.replaceAll("\n", "")
。这是我感到困惑的地方,我不确定你到底想要什么。如果你想保留新行,那么你必须从你获得它的任何地方正确地获取它(例如,你应该得到一个\n
字符而不是转义版本。)。
答案 1 :(得分:0)
我认为你应该这样做,
string.replaceAll("\\n", "\n")
详细代码,
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String text = "Daily 10 am - 5 pm.\\nClosed Thanksgiving and Christmas.";
Log.d("TEMP", "*********************************" + activateNewlines(text));
}
private String activateNewlines( String text ) {
String temp = text;
return temp.replaceAll("\\n", "\n");
}
Logcat输出是,
08-28 19:16:00.944: D/TEMP(9739): *********************************Daily 10 am - 5 pm.\nClosed Thanksgiving and Christmas.