来自javadoc
public String readLine()
throws IOException
Read a line of text. A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed.
我有以下类型的文字:
Now the earth was formless and empty. Darkness was on the surface
of the deep. God's Spirit was hovering over the surface
of the waters.
我正在阅读以下几行:
while(buffer.readline() != null){
}
但是,问题是它是在换行之前考虑一个字符串upto.But我想在字符串以.
结束时考虑行。我该怎么办?
答案 0 :(得分:7)
您可以使用Scanner
并使用useDelimiter(Pattern)
设置自己的分隔符。
请注意,输入分隔符为regex,因此您需要提供正则表达式\.
(您需要在正则表达式中打破字符.
的特殊含义)
答案 1 :(得分:5)
您可以一次读取一个字符,并将数据复制到StringBuilder
Reader reader = ...;
StringBuilder sb = new StringBuilder();
int ch;
while((ch = reader.read()) >= 0) {
if(ch == '.') break;
sb.append((char) ch);
}
答案 2 :(得分:4)
java.util.Scanner
代替缓冲的阅读器,并使用"\\."
将分隔符设置为Scanner.useDelimiter()
。
(但请注意,分隔符已被使用,因此您必须再次添加分隔符!).
答案 3 :(得分:4)
您可以按每.
分割整个文本:
String text = "Your test.";
String[] lines = text.split("\\.");
分割文本后,您会得到一系列线条。如果您想要更多控制,也可以使用正则表达式,例如也可以:
或;
拆分文字。只是谷歌吧。
PS。:也许您必须首先使用以下内容删除新行字符:
text = text.replaceAll("\n", "");