在 JAVA 中从 Position1 到行尾(不是字符串)写入 1 行字符串

Writing 1 line of a string from Position1 to end of line (not String) in JAVA

我有一个 200 行的字符串,我从字符串中搜索特定单词是否出现在哪个位置,然后只将该行字符串写入变量而不是其他任何行。 我正在使用 subString 方法,但卡在行尾。

pos = docText.indexOf("ABC");
String known = docText.substring(pos+28 , *end of line*);

如何表示这个行尾

有几种方法可以做到这一点,但在我看来,最简单的解决方案是循环搜索搜索文本后的字符。 我假设 28 是你的搜索文本的长度,所以你可以使用类似这样的东西找到该行的其余部分

StringBuilder restOfLine = new StringBuilder();
char nextChar;
for (int i = pos + 28; (nextChar = docText.charAt(i)) != '\n'; i++)
    restOfLine.append(nextChar);

String known = restOfLine.toString();

作为替代方案,如果您已经在使用 commons-lang,则可以使用

String known = StringUtils.substringBetween(docText, "ABC", "\n");

只记得在行尾使用正确的字符(我在示例中使用 \n