从文件中读取字符串下方的字符串

Reading a string below a string from a file

例如,我要将联系方式保存在.txt 文件中,保存后,我只想通过输入姓名来查看此人的联系方式。

例如,如果我有一个包含这些字符串的 .txt 文件,

Name: Shiroe
Contact Number: 1234567890
Name: Kirito
Contact Number: 0987654321

我输入了"Shiroe"作为要查看的联系人姓名。我的预期输出是,

Name: Shiroe
Contact Number: 1234567890

那么,最重要的是,是否可以读取字符串下方的字符串(先读取 "Shiroe"/"Name: Shiro",然后再读取 below/after "Shiroe" 行)用作输出?还是我问错问题了?

您可以做这样的事情...如果没有显示您的任何代码,很难模拟出正确的片段,但逻辑应该适用...

try(BufferedReader br = new BufferedReader(new FileReader("yourFile.txt"))) {
        StringBuilder builder = new StringBuilder();
        String line = br.readLine();
        Boolean needNextLine = false;

        while (line != null) {
            if (needNextLine) {
                sb.append(line)
                needNextLine = false;
                sb.append(System.lineSeparator());
            }

            if (line.contains("Shiroe")) {     // hardcoded
                 sb.append(line);
                 needNextLine = true;
                 sb.append(System.lineSeparator());
            }

            line = br.readLine();
        }
        String toBeReturned = sb.toString();
    }

很有可能


  • 使用 int startPos = text.indexOf("Name:Shiroe")[在整个字符串(sat "text",保存文本文件中的数据)中搜索 "Name:Shiroe" 的出现=23=]
  • 那会 return 你是字符 ('N') 在 "Name:Shiroe".
  • 中第一次出现的索引
  • 现在使用 endPos = text.indexOf("Name",pos+1)
  • 在 "Name:Shiroe" 之后搜索另一个 "Name"
  • 现在使用 text.subString(startPos,endPos);
  • 从 startPos 到 endPos 提取子串

int startPos = text.indexOf("Name:Shiroe");
int endPos = text.indexOf("Name",startPos);
String details = text.subString(startPos,endPos);

干杯:)