2017-10-14 66 views
0

我試圖讀取文件test.txt,逐個獲取所有單詞,然後從讀取的單詞中刪除點和逗號。在字符串中刪除句號

這裏是我的代碼:

import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 

public class Utils { 
    public static void readFile(){ 
     Scanner word = null; 
     try { 
      word = new Scanner(new File("test.txt")); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

     while (word.hasNextLine()) { 
      Scanner s2 = new Scanner(word.nextLine()); 
      Utils.cleanWord(s2); 
      while (s2.hasNext()) { 
       String s = s2.next(); 

       System.out.println(s); 
      } 
     } 
    } 

    private static void cleanWord(String word){ 
     word = word.replace(".", ""); 
    } 

當我編譯我的代碼,我得到這個錯誤Error:(18, 29) java: incompatible types: java.util.Scanner cannot be converted to java.lang.String

有誰知道我應該給這類型cleanWord方法請,所以它可以執行刪除對單詞進行操作。 謝謝

回答

1

要調用Utils.cleanWord(s2),其中s2Scanner而不是String

你的代碼應該是:

while(s2.hasNext()) { 
    String s = s2.next(); //or s2.nextLine(); depending on what you want.. 
    s = Utils.cleanWord(s); 
    System.out.println(s); 
} 

而且,Java的參數都是引用,不是指針。您不能分配字參數,並期望它在函數外改變..

private static void cleanWord(String word){ 
    word = word.replace(".", ""); 
} 

實際上應該是:

private static String cleanWord(String word){ 
    return word.replace(".", ""); 
} 

,因爲你不能修改參數..嘗試將導致修改參數的本地引用而不是參數本身。