在java中从位置1到行尾(非字符串)写入字符串的1行

ua4mk5z4  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(308)

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

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

如何表示这一行的结束

gudnpqoy

gudnpqoy1#

有几种方法可以做到这一点,但在我看来,最简单的解决方案是在搜索文本后循环使用字符。我假设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 (在示例中)

相关问题