子串删除正斜杠?

时间:2012-08-29 01:46:04

标签: android string substring

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识别换行符。

2 个答案:

答案 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.