我正在尝试读取文件vectors
,逐个获取所有单词,然后从读取的单词中删除点和逗号。
这是我的代码:
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
方法提供哪种类型,以便它可以对单词执行删除操作。
谢谢
答案 0 :(得分:1)
您正在呼叫Utils.cleanWord(s2)
,其中s2
是Scanner
而不是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参数是引用,而不是指针。您无法分配到word参数并期望它在函数外部更改..
private static void cleanWord(String word){
word = word.replace(".", "");
}
实际应该是:
private static String cleanWord(String word){
return word.replace(".", "");
}
因为您无法修改参数..尝试将导致修改参数的本地引用而不是参数本身。