问题描述
例如,给定的字符串:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p id="p1">hello show and hide</p>
<!--added hide/show class-->
<button type="button" class='hide'>hide</button>
<button type="button" class='show'>show</button>
而且我必须在范围之间读取,即从第 4 行到第 6 行。
怎么做?
看起来我可以使用 java 8 文本流。
str = "1 ddsfsdfs
d
6 s4. 3t
sdfdsfsfsf
dfdsfsfdfsdfd
345345
dsfsdf45v";
但不太了解 API。欢迎任何指点
解决方法
Lines API 已在 Java 11 中添加。如果您运行的是 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(","));
从给定索引中读取行,不包括起始索引处的行。
如果您运行的是低于 11 但高于 8 的任何 Java 版本,则可以通过将输入字符串按如下所示的换行符拆分来创建 Stream
的 String
来实现相同的目的:
String line4To6 = Arrays.stream(str.split("\\n")).skip(4).limit(6 - 4).collect(Collectors.joining(","));