2017-10-14 3 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 방법하시기 바랍니다에 제공해야하는 유형을 알고 있나요이 오류를 얻을 단어에 대한 조작. s2Scanner 아닌 String입니다 당신은 Utils.cleanWord(s2)를 호출

답변

1

감사합니다.

코드는해야한다 :

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

또한, 자바 매개 변수, 포인터 참조하지 않습니다. 수정 발생합니다 시도 ..

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

당신이 매개 변수를 수정할 수 없기 때문에 : 당신은

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

실제로해야 .. 단어 매개 변수에 할당하고는 함수 외부 변경 기대할 수 없다 매개 변수의 자체 참조가 아니라 매개 변수의 로컬 참조