java - 逐行返回值

标签 java spring java.util.scanner

我有两门课:

public class SwimmingWorkout implements Workout {

    @Override
    public String getWorkout() {
        File fr = new File("swimmingWorkout_beginner.txt");

        Scanner sc = null;
        try {
            sc = new Scanner(fr);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        String val = "";
        while (sc.hasNextLine()) {
            val = val + sc.nextLine();
        }

        sc.close();
        return val;
    }
}

和:

public class MainApp {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

        Workout workout = context.getBean("myWorkout", Workout.class);
        System.out.println(workout.getWorkout());
        context.close();
    }

}

运行后,我将文件中的所有行打印在一行中。我想要做的是返回 val 值,并将每一行打印在新行中,而不是打印在一行中。我怎样才能做到这一点?

最佳答案

当您从扫描仪中获取一行时,分隔符将被删除。在这种情况下,分隔符是换行符。因此,您必须将其添加回来 将其添加回来的一种方法是这样的:

val = val + sc.nextLine() + "\n";

还有其他方法。例如,您可以使用 StringBuilder 或 StringJoiner。但我粘贴在这里的那个很快就能尝试。

关于java - 逐行返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48240389/

相关文章:

java - 如何从 JTextArea 中一行一行地删除

java - 为单个 Spring Controller 指定消息转换器

spring - Spring中的构造函数注入(inject)

Java - 文件读取和分隔符所需的帮助

Java Swing 使用文本文件中的数据填充多个 JTextField

java - 透明扫描仪(中)

java - 如何避免连接器在 Open Office/Libre Office Draw 中移动形状

java - 我的套接字 API 中的读取功能不起作用并且滞后

java - 在桌面应用程序上外部化数据库配置的最佳方法是什么?

java - 在安全方法中创建新对象