如何根据newline字符拆分Java字符串



我在Java中有一个字符串,如下所示:

String numbers = null;
for (int i= 0; i < contactNumberList.size();i++)
{
    numbers = contactNumberList.get(i) + "n" + numbers;
}

contactnumberlist包含四个项目,如:9891,3432,5432,9890。因此,在循环之后,我有数字字符串 as: 9890 n5432 n3432 n9891 nnull

然后我通过以下API将上述字符串传递。

String toUnicodeEncoded = StringEscapeUtils.escapeJava(numbers);
toUnicodeEncoded = StringEscapeUtils.escapeXml10(toUnicodeEncoded);

现在,当我尝试按照以下字符打印字符串tounicodeCodencoded字符时:

for (int i =0;i<toUnicodeEncoded.length();i++)
{
   Logger.log("chat at  "+i + " = "+(toUnicodeEncoded.charAt(i)));
}

它给出:

char at 0 = 9
char at 1 = 8
char at 2 = 9
char at 3 = 0
char at 4 = 
char at 5 = n

等等。

我的意思是" n"成为两个字符和n。 现在,我想使用以下API分开基于" n"的字符串tounicodeCoded

String lines[] = toUnicodeEncoded.split("\n");

,但由于现在" n"已经变成和n,因此无法将其分开。我如何按" n"或新的行字符将tounicodeCodencoded String拆分。

基本上我希望输出为:

9890
5432
3432
9891
null

即所有四个数字。我该怎么做。

当我们用 n拆分字符串时,它将给出预期的输出。但是最好使用System.getProperty("line.separator")代替n

String s="9890n5432n3432n9891nnull";
s = StringEscapeUtils.escapeJava(s);
s= StringEscapeUtils.escapeXml10(s);
for (String number:s.split("n")) {
    System.out.println(number);
}

结果

9890
5432
3432
9891
null

使用此功能,应该做技巧

String.split("[\r\n]+")

感谢大家的回复。但是我使用以下方法工作了:

String pattern = Pattern.quote("\" + "n");
String lines[] = toUnicodeEncoded.split(pattern);

最新更新