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

时间:2015-03-09 15:58:41

标签: java string filewriter printwriter

例如,我要在.txt文件中保存联系人详细信息,然后保存,我只想输入名称来查看此人的联系方式。

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

  

姓名:Shiroe
  联系电话:1234567890
  姓名:Kirito
  联系电话:0987654321

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

  

姓名:Shiroe
  联系电话:1234567890

所以,底线,是否可以读取字符串下面的字符串(阅读" Shiroe" /"名称:Shiro"首先然后读取下面/后面的行&# 34; Shiroe")用作输出?或者我问错了问题?

2 个答案:

答案 0 :(得分:1)

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

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();
    }

答案 1 :(得分:0)

很有可能


  • 搜索整个字符串(sat" text",保存文本文件中的数据)以查找" Name:Shiroe"使用int startPos = text.indexOf("名称:Shiroe")
  • 这会返回第一次出现的字符索引(' N')"姓名:Shiroe"。
  • 现在搜索另一个" Name"之后"姓名:Shiroe"使用endPos = text.indexOf(" Name",pos + 1)
  • 现在使用text.subString(startPos,endPos)提取子串形式startPos直到endPos;

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

欢呼:)