2014-02-16 61 views
-1

更新:我想通了。見下文。搜索字符串,然後從文本文件打印下一行

我正試圖在文本文檔中找到特定的字符串。一旦找到字符串,我想要打印的唯一信息就是後面的行中的信息,直到出現空行。我已經能夠找到字符串和打印,但我總是先打印包含該字符串的行。

例子:

我在這個文檔搜索泰德:

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 (output){ 
line=line.trim(); 
if (line.startsWith(name)){} 
else{ 
TextIO.putln('"'+line+'"');}} 

這個檢查字符串'行名字「然後忽略它。然後它進入下一行。我不得不使用trim()以防某些行在名稱前有空格。作爲一名新手,這是我唯一能找到的方法,以避免每次找到「名字」時不斷創建新行。我刪除了一些需要的格式,以使其成爲該問題的更一般的解決方案。

+3

請顯示您的代碼。 – BroSlow

回答

1

用於查找字符串「ted」的函數必須給出字符串ted的第一個字符的位置。嘗試將該字符串的長度添加到該位置,然後寫入該行的其餘部分(從該索引到該行的末尾)。

+0

這對我來說並不完全清楚,但我想我可能對你在說什麼有個想法。問題是,我想我可以再次編輯我的帖子來拍攝它,這個'ted'可能會在文檔中顯示20次。所以我想完全忽略包含該字符串的行。我認爲你所說的話可能會導致我有很多我想避免的空白行。有一段時間,我想也許使用.substring(),但我不能讓它隻影響名稱行。 – user3251678

+0

對於每一行你可以得到字符串最後一次出現的位置,然後添加字符串的大小,從該行的末尾添加長度到該行的末尾,然後將其打印 –

+0

If您已經:tedblátedbláted aaaaa您打印:aaaaa –

相關問題