Java String.replaceAll()从Sqlite数据库获取数据时出现意外行为

Java String.replaceAll()从Sqlite数据库获取数据时出现意外行为,java,android,string,sqlite,replace,Java,Android,String,Sqlite,Replace,我对这种行为感到奇怪。在我的应用程序中,我从服务器或我自己创建的数据库获取数据。(I克隆服务器数据库) 这是一张照片。 代码很好。您在调试屏幕中看到的数据是错误的。执行相同的调试会话,插入system.out.println,并使用调试屏幕中的输出检查输出 除非您的意思是数据库实际上有字符串“\r\n”。上面假设数据库实际上包含carrige返回字符和换行字符。如果数据库中的反斜杠字符后跟“n”字符,则需要对正则表达式进行简单的调整。s、 replaceAll(“\\\\r\\\\n”,“”)代

我对这种行为感到奇怪。在我的应用程序中,我从服务器或我自己创建的数据库获取数据。(I克隆服务器数据库)

这是一张照片。
代码很好。您在调试屏幕中看到的数据是错误的。执行相同的调试会话,插入system.out.println,并使用调试屏幕中的输出检查输出


除非您的意思是数据库实际上有字符串“\r\n”。上面假设数据库实际上包含carrige返回字符和换行字符。如果数据库中的反斜杠字符后跟“n”字符,则需要对正则表达式进行简单的调整。s、 replaceAll(“\\\\r\\\\n”,“
”)代码正常。您在调试屏幕中看到的数据是错误的。执行相同的调试会话,插入system.out.println,并使用调试屏幕中的输出检查输出


除非您的意思是数据库实际上有字符串“\r\n”。上面假设数据库实际上包含carrige返回字符和换行字符。如果数据库中的反斜杠字符后跟“n”字符,则需要对正则表达式进行简单的调整。s、 replaceAll(“\\\\r\\\\n”,“

输入字符串是否包含实际的CR和LF字符或成对的\和\r和\n


正则表达式在后一种情况下不起作用。它需要
.replaceAll(“\\\\r\\\\n”和“
”)

输入字符串是否包含实际的CR和LF字符或\和\r和\n对

正则表达式在后一种情况下不起作用。它需要
.replaceAll(“\\\\r\\\\n”,“
”)

您可以尝试使用模式#quote()吗

比如:


System.out.println("hello\r\n\r\n something".replaceAll(Pattern.quote("\r\n"), "
"));

System.out.println(“hello\r\n\r\n something.replaceAll(Pattern.quote(“\r\n”),“
”);
您可以尝试使用模式#quote()吗

比如:


System.out.println("hello\r\n\r\n something".replaceAll(Pattern.quote("\r\n"), "
"));

System.out.println(“hello\r\n\r\n something.replaceAll(Pattern.quote(“\r\n”),“
”);

System.out.println("hello\r\n\r\n something".replaceAll(Pattern.quote("\r\n"), "
"));