【发布时间】:2014-09-21 02:08:52
【问题描述】:
我有一串大约一百行,不知道这些行是“\r\n”还是“\n”。
我想解析一次字符串,处理每一行。
This question 几乎回答了我的问题,但没有提到如何处理未知的换行符。
我正在考虑使用上述方法之一,选择“\n”作为分隔符,然后逐行删除任何“\r”字符。
虽然性能确实不是问题,但我想知道是否有更清洁的方法来做到这一点。我还没有找到任何自动处理行分隔符类型的方法。
尝试 #1,根据 @TritonMan 的建议:
Scanner scanner = new Scanner(myString);
String line = scanner.nextLine();
// line contains whole contents of string, not just the first line
如果重要的话,我会在 Android 上运行它。该字符串来自一个 PLS 文件(播放列表),它似乎在任何地方都没有得到很好的定义,所以我不知道它使用什么类型的行分隔符。
作为后备,我将使用这个问题中的代码,但它现在困扰着我如何在没有正则表达式或 String.split() 的情况下处理流:
String lines[] = String.split("\\r?\\n");
【问题讨论】:
-
第二个答案不适合你吗?这应该。使用 Scanner 的那个
-
啊,太好了,谢谢。我会试试的
-
它不起作用 - 请查看我的编辑
-
Scanner 和 BufferedReader 不关心行尾的类型。他们将匹配他们两个。 See also this answer
-
谢谢 - 结果(你可能知道)我没有注意到其他代码在传递给我之前删除了这些行。
标签: java newline text-parsing