更新:我明白了。见下文。
我正在尝试在文本文档中查找特定字符串。一旦找到字符串,我唯一想要打印的就是它后面的行中的信息,直到有一个空行。我已经能够找到字符串和打印,但我总是先打印包含字符串的行。
示例:
我在这个文档中搜索Ted:
blah blah
ted
blah blah
blah
bl
mike
现在我打印:ted blah blah blah bl
我想:blah blah blah bl
我想也许nextline()
但我老实说根本不知道如何使用扫描仪,因为我们在课堂上使用的是textIO。
public static void main(String[] args) {
boolean output=false;
String name="";
String junk="CHAMBERS";
TextIO.putln("Search name:");
name = TextIO.getln();
TextIO.readFile("doc.txt");
name = name.toUpperCase();
TextIO.putln(name + "'s "+"Info");
output = false;
while (false == TextIO.eof()) {
String line = TextIO.getln();
if (line.isEmpty())
output = false;
if (line.indexOf(name) >= 0 && line.indexOf(junk)<=0){
output = true;
}
if (output){
line=line.trim();
TextIO.putln(name+":"+'"'+line+'"');}
}
TextIO.putln();
}
由于我不能回答我自己的问题,我会把它放在这里:
在If(输出)树中:
if (output){
line=line.trim();
if (line.startsWith(name)){}
else{
TextIO.putln('"'+line+'"');}}
这将检查字符串'name'的行,然后忽略它。然后它继续下一行。我不得不使用trim(),以防某些行在名称前面有空格。作为新手,这是我发现每次找到“名字”时不断创建新行的唯一方法。我删除了一些格式化,使其成为问题的更通用的解决方案。
答案 0 :(得分:1)
用于查找字符串“ted”的函数必须为您提供字符串ted的第一个字符的位置。尝试将String ted的长度添加到该位置,然后写入该行的其余部分(从该索引到该行的末尾)。