从java中的字符串中读取两行之间的内容

jvidinwx  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(765)

**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

四天前关门了。
改进这个问题
我有一个文本行流,我必须从这个字符串中读取一个范围。
例如,给定字符串:

str = "1 ddsfsdfs
d
6 s4. 3t
sdfdsfsfsf
dfdsfsfdfsdfd
345345
dsfsdf45v";

我必须在四行到六行之间阅读。
怎么做?
看起来我可以使用Java8的文本流。

str.lines().collect(...)

但还没有完成api的设计。欢迎来人

mbjcgjjk

mbjcgjjk1#

Java11中添加了LinesAPI。如果您运行的是java 11,那么对于输入字符串:

var str = "1 ddsfsdfs\n" +
            "    d\n" +
            "    6 s4. 3t\n" +
            "            sdfdsfsfsf\n" +
            "    dfdsfsfdfsdfd\n" +
            "    345345\n" +
            "    dsfsdf45v";

你可以这样做:

String line4To6 = str.lines().skip(4).limit(6 - 4).collect(Collectors.joining(","));

将产生以下输出:

dfdsfsfdfsdfd,    345345

基本上,从字符串中读取特定行的公式是:

str.lines().skip(fromLineNumber).limit(toLineNumber - fromLineNumber).collect(Collectors.joining(","));

它将从给定索引中读取行,不包括起始索引处的行。
如果您运行的java版本低于11但高于8,那么通过创建 StreamString 通过将输入字符串拆分为一个新行字符,如下所示:

String line4To6 = Arrays.stream(str.split("\\n")).skip(4).limit(6 - 4).collect(Collectors.joining(","));

相关问题