Java println 插入额外的新行

Java println inserting extra new line

这让我很烦。无论出于何种原因,System.out.println 都会插入一个额外的换行符,我不明白为什么。有问题的代码是:

System.out.println("Videos: ");
for (Video video: videosToBeRented) {
    System.out.println(video.getName() + " - " + video.getType());
}
System.out.println("price: " + price + "\n");

这是一个示例输出:

Videos: 
The Walking Dead Cats - ROMANCE

Star Scrimmage - HORROR

Cat in the Boot - NEW_RELEASE
price: 91.0

Video 是一个简单的 class,它包含两个私有实例变量 String name 和 VideoType type。 VideoType 是一个枚举。

知道为什么前两个跳过 space 而最后一个没有吗?我正在使用 Eclipse。可能是我不小心碰到了设置

谢谢!

***更新 添加视频和 VideoType classes.

public class Video {

//Private Instance Variables
private String name;
private VideoType type;

public Video(String name, VideoType type) {
    this.name = name;
    this.type = type;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public VideoType getType() {
    return type;
}

public void setType(VideoType type) {
    this.type = type;
}

}

public enum VideoType {
NEW_RELEASE(6.00), DRAMA(5.00), COMEDY(2.00), ROMANCE(4.00), HORROR(3.00);

private double price;

VideoType(double price) {

    this.price = price;
}

public double getPrice() {

    return this.price;
}

}

可能的原因是 video.getType().toString() 值以换行符结尾 ('\n')。尝试 System.out.print,看看你是否仍然得到换行符。另一种选择是使用调试器检查字符。

\n

这将插入一个新行。那么一切都会有自己的行而不会跳过额外的行。这里的问题好像是你getType();打来的。

您也可以保留 \n 并执行 System.out.print 而不是 System.out.println,因为 print ln 会打印一个新行。

编辑:现在您发布了代码,我们可以看到它是 "VideoType" class。您是否尝试过返回不带参数的枚举值?

我会创建一个 toString 方法并显示您自己想要的内容,这将消除多余的行问题。

这样当您以 video.getType(); 结尾时,您将确保它按照您想要的方式运行。

尝试使用 System.out.print 以避免额外的行。

尝试 System.out.print("someString") 而不是 System.out.println("someString")

是的,这是一个非常愚蠢的错误。

你们帮助我找到了解决方案。发生的事情是我正在从一个看起来像这样的 txt 文件中读取视频名称:

movie1,
movie2,
...

我将分隔符设置为“,”,所以它正在读取 "movie1",然后是“\r\nmovie2”

我需要更改文本文件,使其看起来像:movie1、movie2,或者更改我的代码以逐行读入,而不是只读入下一个值。