从文件中读取字符串下方的字符串
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);
干杯:)
例如,我要将联系方式保存在.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);
干杯:)