Java 转义字符'\';不';在System.out.println()中不显示,但在返回值中显示

Java 转义字符'\';不';在System.out.println()中不显示,但在返回值中显示,java,Java,在Java中,当我用转义字符替换字符串中的字符时,字符会显示在返回值中,尽管根据System.out.println,它们不在返回值中 String[][][] proCategorization(String[] pros, String[][] preferences) { String str = "wehnquflkwe,wefwefw,wefwefw,wefwef"; String strReplaced = str.replace(",","\",\""); //replace ,

在Java中,当我用转义字符替换
字符串中的字符时,字符会显示在返回值中,尽管根据
System.out.println
,它们不在返回值中

String[][][] proCategorization(String[] pros, String[][] preferences) {
String str = "wehnquflkwe,wefwefw,wefwefw,wefwef"; 
String strReplaced = str.replace(",","\",\""); //replace , with ","
System.out.println(strReplaced);
控制台输出为:
wehnquflkwe”、“wefwefw”、“wefwefw”、“wefwef

String[][][] array3d = new String[1][1][1]; // initialize 3d array
array3d[0][0][0] = strReplaced;
System.out.println(array3d[0][0][0]);


    return array3d;
}
控制台输出为:

WEHQUFLKWE、WEFW、WEFW、WEF

现在返回值为:

[“wehnquflkwe\”,“WEFWEW\”,“WEFWEW\”,“wefwef”]]


我不明白为什么
\
显示在返回值中,而不是
System.out.println

System.out.println
字符串打印成与存储在内存中完全相同的格式

String[][][] proCategorization(String[] pros, String[][] preferences) {
String str = "wehnquflkwe,wefwefw,wefwefw,wefwef"; 
String strReplaced = str.replace(",","\",\""); //replace , with ","
System.out.println(strReplaced);
另一方面,当您使用
断点停止应用程序流时,您可以查找值

大多数IDE显示带有“代码> >代码>的转义字符,以指示它只是一个代码>字符串,而不是<代码> String []/Case>在这种情况下,或者,如果中间包含<代码> \n>代码>,则不将<<代码>字符串< /代码>分成两行。

为了以防万一,您仍然有疑问,我建议打印
strreplace.length()
。这应该允许您逐个计数字符

可能的实验:

String s = "my cute \n two line String";
System.out.println(s + " length is: " + s.length());

内存中的字符可以用不同的方式表示

您的集成开发环境(IDE)有一个调试器,它选择用一个包含字符的元素来表示
字符串[][]

wehnquflkwe","wefwefw","wefwefw","wefwef
作为带引号的java字符串

"wehnquflkwe\",\"wefwefw\",\"wefwefw\",\"wefwef" 
这很有意义,因为您可以将该字符串复制并粘贴到java代码中,而不会丢失任何内容

另一方面,您的系统控制台和IDE的内置终端仿真器将以其正常表示形式输出字符,即不带任何java字符串转义字符:

wehnquflkwe","wefwefw","wefwefw","wefwef

作为实验,您可能需要检查其他“特殊”字符的情况,例如
\t
(制表符中断)或
\b
(退格)。这只是Java中字符通常转换为点的提示,系统或终端中可用的字体可能支持点,也可能不支持点。IDE将字符表示为java引用字符串的方式允许它无损地表示几乎任何东西;System.out.println的输出变量要大得多。

因为这就是IDE决定向您显示它的方式。如果没有
\
,那么您可以正确地假设,您实际上拥有的是一个小字符串数组,这是不正确的。因此,为了明确它是一个大字符串,分隔符
将为您转义。我不理解那些下行投票。这是一个不错的问题。”返回值是:“-您是如何查看此返回值的?@luk2302如果之前有人问过它一千次,为什么不将其中一个链接为副本?请不要只是点击“向下投票”,请在评论中添加向下投票的原因。