【问题标题】:Writing 1 line of a string from Position1 to end of line (not String) in JAVA在JAVA中将1行字符串从Position1写入行尾(不是字符串)
【发布时间】:2021-09-17 03:23:17
【问题描述】:

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

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

如何表示这个行尾

【问题讨论】:

  • 你可以先用 \n 分割行,然后做 for 循环,在 for 循环内部使用相同的检查来搜索子字符串
  • 谢谢@sandip。它奏效了。
  • 就我个人而言,我可能会在字符串上使用 Scanner 并调用 nextLine 直到您到达其中包含子字符串的那个。

标签: java string substring


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 2011-03-07
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    相关资源
    最近更新 更多