0
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;
    }

特殊文字の余分なスラッシュを削除しようとしていますが、何らかの理由でサブストリングがスラッシュを削除してしまいます。部分文字列は、文字列の先頭にあるスラッシュが好きではありませんか?最終的な文字列は次のようになります

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は実際に改行を認識できます。

4

2 に答える 2

0

私は少し混乱していますが、ここに行きます。だから、"\n"新しい行です。"\\n"は円記号とn、\nです。replaceAllを使用して、それを取り除くことができますstring.replaceAll("\n", "")。これは私が混乱するところです、私はあなたが正確に何を望んでいるかわかりません。改行を保持したい場合は、どこから取得しても適切に取得する必要があります(たとえば\n、エスケープされたバージョンではなく文字を取得する必要があります)。

于 2012-08-29T02:01:36.737 に答える
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.
于 2012-08-29T02:12:27.400 に答える