具有换行符或<br>的Android日志字符串

Chr*_*ian 5 android android-logcat

看来,如果你打电话

String text = "String<br>String";
Log.d(TAG, text);
Run Code Online (Sandbox Code Playgroud)

它会自动解析String以获取两行.新的line(\n)字符也是如此.这使调试变得更加复杂.有没有办法告诉记录器给我确切的字符串?

Pau*_*zzi 7

Log类中方法的参数是Java字符串,因此转义特殊字符就像在Java中一样.例如,

String text = "String\nString";
Log.d("TEST!!", text);
Run Code Online (Sandbox Code Playgroud)

会给你:

D/TEST!!? String
    String
Run Code Online (Sandbox Code Playgroud)

而:

String text = "String\\nString";
Log.d("TEST!!", text);
Run Code Online (Sandbox Code Playgroud)

会给你:

D/TEST!!? String\nString
Run Code Online (Sandbox Code Playgroud)

在logcat中.

至于<BR>,我没有看到与你相同的效果.特别,

String text = "String<br>String";
Log.d("TEST!!", text);
Run Code Online (Sandbox Code Playgroud)

生产:

D/TEST!!? String<br>String
Run Code Online (Sandbox Code Playgroud)

所以我无法重现你的实际问题.但是,通常,Log字符串中的特殊字符将像任何其他Java字符串一样进行转义.记录器很笨,没有设置可以自动转义特殊字符; 你必须自己做任意字符串.该Log方法只是转身打电话println_native.