Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 反斜杠出现在我的字符串数组上_Java - Fatal编程技术网

Java 反斜杠出现在我的字符串数组上

Java 反斜杠出现在我的字符串数组上,java,Java,我有一个字符串[]数组,里面有单词。我想使用冒泡排序方法,以便按字母顺序排序 除了一些单词外,一切似乎都正常工作:例如,\r\n缩减或分层\r\n,因此这些单词不会按顺序排列 但是,当我打印这些单词时,“\r\n”不会出现 我试图用replace/replaceAll方法删除它,但它似乎没有按应有的方式工作。这些字符是新行字符。您应该能够对字符串调用trim(),以消除它们。但是请记住,字符串在Java中是不可变的 您必须存储trim()的结果,因为调用不会修改原始字符串。您使用的方法也应该有效

我有一个
字符串[]
数组,里面有单词。我想使用冒泡排序方法,以便按字母顺序排序

除了一些单词外,一切似乎都正常工作:例如,
\r\n
缩减或分层
\r\n
,因此这些单词不会按顺序排列

但是,当我打印这些单词时,
“\r\n”
不会出现


我试图用replace/replaceAll方法删除它,但它似乎没有按应有的方式工作。

这些字符是新行字符。您应该能够对字符串调用
trim()
,以消除它们。但是请记住,字符串在Java中是不可变的


您必须存储
trim()
的结果,因为调用不会修改原始字符串。您使用的方法也应该有效,但可能您忘记了存储结果。

看看转义序列

本质上,
\r
\n
是转义序列,意思是“在此点在文本中插入回车符”和“在此点在文本中插入换行符”

因此,当您要打印这些单词时,java会根据需要插入回车符或换行符。我相信Windows使用
\r\n
,而*nix使用
\n
来表示新行的打印位置


我不知道为什么
replaceAll()
不起作用;如果您提供了正确的参数,它们应该会起作用。可能是您忘记转义反斜杠。

打印时,
'\r'
'\n'
符号不可见,因为它们不会生成字符-它们将光标移动到其他位置。消除字符串两端的
'\n'
'\r'
和其他空白字符的一种简单方法是调用字符串上的
trim()
方法。进行分拣前,请执行以下操作:

for (int i = 0 ; i != array.length ; i++) {
    array[i] = array[i].trim();
}
在这个循环之后,所有单词的两端都不会有空格字符,这使得排序算法能够正确地比较字符串


这假定
数组
中没有任何元素是
null
。如果某些元素可以是
null
,请在代码中添加
null
检查。

您所说的“减少”和“分层”是什么意思?你是想添加反斜杠还是删除它们?请澄清。