2017-03-06 97 views
1

我正在嘗試製作一個程序,該程序通過掃描程序在每行java文件中搜索關鍵字「單詞」。Java在每一行中搜索字符串關鍵字

的功能體我做:

Scanner scaner = new Scanner(file); 
int count = 0; 
String search = "word"; 
while (scaner.hasNext()) { 
    Scanner scaner2 = new Scanner(scaner.nextLine()); 
    while (scaner2.hasNext()) { 
     String s = scaner.next(); 
     System.out.println(s); 
     if (s.indexOf(search) != -1) count++; 
    } 
} 

我要算「字」,即使它看起來像「//子詞」或「wordwordword」

任何人都可以幫助我?

+0

https://www.tutorialspoint.com/java/lang/string_contains.htm 你不僅要檢查它是否等於單詞,還要檢查它是否包含單詞。 –

+0

你可能想看看這個答案http://stackoverflow.com/questions/22755915/counting-number-of-occurrences-of-word-in-java – Akshay

回答

0

拿出一個文件並把這些文字放在裏面;

字字字 字 字 kdfjlask adfsljaslk allaword isword

Scanner scaner = new Scanner(new File("<blaha>")); 
     Integer count = 0; 
     String search = "word"; 


String search = "word"; 
     while (scaner.hasNext()) { 
       String s = scaner.next(); 
       System.out.println(s); 
       if (s.indexOf(search) != -1) count++; 
      } 

     System.out.println(count); 

//輸出7

0

此代碼段應該做你想要達到的:

String str = "wordwordwordwordword"; 
String search = "word"; 
int occurrence = str.split(search, -1).length - 1; 
System.out.println(occurrence); // Occurrence = 5 

split()方法會根據「搜索」字符串儘可能多次拆分「str」,並且我們可以通過將數組長度減1來得到結果。您可以參考此link有關該方法的更多信息。

希望這會有所幫助!