搜索字符串然后从文本文件中打印下一行

时间:2014-02-16 00:19:05

标签: java

更新:我明白了。见下文。

我正在尝试在文本文档中查找特定字符串。一旦找到字符串,我唯一想要打印的就是它后面的行中的信息,直到有一个空行。我已经能够找到字符串和打印,但我总是先打印包含字符串的行。

示例:

我在这个文档中搜索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(),以防某些行在名称前面有空格。作为新手,这是我发现每次找到“名字”时不断创建新行的唯一方法。我删除了一些格式化,使其成为问题的更通用的解决方案。

1 个答案:

答案 0 :(得分:1)

用于查找字符串“ted”的函数必须为您提供字符串ted的第一个字符的位置。尝试将String ted的长度添加到该位置,然后写入该行的其余部分(从该索引到该行的末尾)。