如何从大字符串一行一行阅读?

时间:2012-05-22 16:19:01

标签: java string substring indexof

考虑我在以下结构中有一些大字符串:

parameter1|parameter2|parameter3|parameter4+"\0"

*其中参数是一些未知长度的字符序列。

现在考虑我的大字符串包含4行数据,例如:

parameter1|parameter2|parameter3|parameter4+"\0"
parameter1|parameter2|parameter3|parameter4+"\0"
parameter1|parameter2|parameter3|parameter4+"\0"
parameter1|parameter2|parameter3|parameter4+"\0"

如何阅读第一行然后阅读第二行,依此类推? 我知道我可以使用Substring方法每次轻松获取第一行,但是 如何使用Substring(或其他方法)获取大字符串的后3行,以便再次提取第一行(实际上代表原始大字符串的第二行)。 /> 我知道我需要的只是最后一个“\ 0”(第4行)的索引,我已经有了当前行“\ 0”的索引。

我应该使用lastIndexOf("\0")吗? 如果您对这种工作方式有任何其他想法甚至批评,我将非常高兴听到。

谢谢:)

4 个答案:

答案 0 :(得分:4)

您可以将StringReader包装到BufferedReader中,例如:

BufferedReader r = new BufferedReader(new StringReader("my multiline text..."));
String l = null;
while ((l=r.readLine)!=null) {
 ....
 // each line in "l"
}

http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html#readLine() http://docs.oracle.com/javase/6/docs/api/java/io/StringReader.html

答案 1 :(得分:3)

您可以将String.split方法与"\0"参数一起使用。然后,您将获得一个字符串数组(String[]),然后您可以随意执行以下操作:)

答案 2 :(得分:2)

也许,

inputString.split("\0");

答案 3 :(得分:0)

我会使用正则表达式来分隔字符串。如果你想要一个字符串数组中的所有单词,你可以使用/ s(空格)作为分隔符模式。

您可以在http://www.regular-expressions.info/java.html

找到相关信息