java - 删除字符串中的句号

标签 java

我正在尝试读取文件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(".", "");
    }

当我编译代码时,出现此错误错误:(18, 29) java: 不兼容的类型:java.util.Scanner 无法转换为 java.lang.String

有谁知道我应该为 cleanWord 方法指定哪种类型,以便它可以对单词执行删除操作。 谢谢

最佳答案

您正在调用 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(".", "");
}

因为您无法修改参数。尝试这样做将导致修改参数的本地引用,而不是参数本身。

关于java - 删除字符串中的句号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46750056/

相关文章:

java - Paho MqttClient 的发布方法永远阻塞

java - 蓝牙启动发现未给出结果

java - 使用 dropwizard 轮询 SQS

java - Java/Tomcat 多线程(?)问题中的 RESTful 服务

java - Android Studio 找不到主类报错

java - 如何优化寻找特定对象?

java - 使用 Tomcat 上下文资源定义 JDBC 连接 : Hiding connection credentials

java - 如何在 JTextArea 中添加可点击的 URL?

java - 如何在 MongoDb 中使用 jackson 将日期字段存储为 ISODate()

java - 如何使用 Java 应用程序查看安装在 Mac 操作系统中的软件?