2012-12-17 58 views
-1

编写一个名为printDuplicates的静态方法,它接受作为其 参数的扫描器作为包含一系列行的输入文件。 您的方法应该检查每条线在同一行上查找连续的 相同标记的出现次数,并将每个 重复的标记连同其连续出现的次数一起打印出来。 未重复的令牌未打印。重复多行 (例如,如果一行以给定的标记结束,并且下一行以相同的标记开始 )在此问题中未考虑。Java - 重复检测

例如,如果输入文件包含以下文本(序列复制令牌 有下划线表示强调):

hello how how are you you you you 
I I I am Jack's Jack's smirking smirking smirking smirking smirking revenge 
bow wow wow yippee yippee 
yo yippee 
yippee yay yay yay 
one fish two fish red fish blue fish 
It's the Muppet Show, wakka wakka wakka 

你的方法会产生对前述输入 文件以下输出:

how*2 you*4 
I*3 Jack's*2 smirking*5 
wow*2 yippee*2 yippee*2 yay*3 

wakka*3 

我现在在java中的代码如下,这是不工作,我想知道为什么。如果有人能够帮助这将是伟大的,谢谢:)

import java.io.*; 
import java.util.*; 
public class What { 
    public static void main(String[] args) throws Exception { 
     String word = ""; 
     String word2 = ""; 
     Scanner input = new Scanner(new File("what.txt")); 
     while(input.hasNextLine()) { 
      Scanner line = new Scanner(input.nextLine()); 
      int repeat = 1; 
      word = line.next(); 
      while(line.hasNext()) { 
       word2 = line.next(); 
       while(word.equals(word2) && line.hasNext()) { 
        word = word2; 
        word2 = line.next(); 
        repeat++; 
       } 
       if(repeat!=1) { 
        System.out.print(word + "*" + repeat + " "); 
       } 
       word = word2; 
      } 
      System.out.println(); 
     } 
    } 
} 

what.txt包含以下内容:

hello how how are you you you you 
I I I am Jack's Jack's smirking smirking smirking smirking smirking revenge 
bow wow wow yippee yippee 
yo yippee 
yippee yay yay yay 
one fish two fish red fish blue fish 
It's the Muppet Show, wakka wakka wakka 

和输出现在的问题是:

how*2 are*2 you*4 
I*3 am*3 jack's*4 smirking*7 
wow*2 yippee*3 yo*3 yippee*4 yay*5 

wakka*2 
+0

为什么它没有解决?目前的产量是多少?获取任何错误?如果您需要帮助,您需要提供这些信息。 – Thihara

+0

是否确定what.txt存在并且有数据? – codeMan

+0

what.txt包含以下内容:你好,你怎么样你你你 III是杰克的杰克的奸笑奸笑奸笑奸笑奸笑报复 弓哇哇YIPPEE YIPPEE 哟YIPPEE YIPPEE耶耶耶 一条鱼两条鱼红色的鱼蓝色的鱼 这是Muppet Show,wakka wakka wakka – Ponnnnn

回答

0

试试这个:

while(line.hasNext()) { 
    word2 = line.next(); 
    while(word.equals(word2)) { 
     repeat++; 
     if(line.hasNext()){ 
      word2 = line.next(); 
     } else { 
      break; 
     } 
    } 
    if(repeat!=1) { 
     System.out.print(word + "*" + repeat + " "); 
    } 
    repeat = 1; 
    word = word2; 
} 
+0

哇O_O非常感谢!它像一个魅力!现在我只需要研究它:P再次,非常感谢,我真的很感激它:) – Ponnnnn