我有两门课:
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/