Java println插入额外的新行

时间:2016-04-22 04:22:46

标签: java eclipse newline println

这是困扰我的。无论出于何种原因,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

视频是一个简单的类,它包含两个私有实例变量String name和VideoType类型。 VideoType是一个枚举。

为什么前两个跳过最后一个没有的空间的任何想法?我正在使用Eclipse。也许有一个我不小心碰到的环境。

谢谢!

*** UPDATE 添加Video和VideoType类。

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;
}

}

5 个答案:

答案 0 :(得分:8)

可能的原因是video.getType().toString()值以换行符('\n')结束。试试System.out.print,看看你是否还有新的线条角色。另一种方法是使用调试器来检查字符。

答案 1 :(得分:1)

\n

这会增加一条新线。然后一切都会有自己的线,而不会跳过额外的线。这里的问题似乎来自你getType();电话。

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

编辑:现在您发布了代码,我们可以看到它是“VideoType”类。您是否尝试在没有参数的情况下返回枚举值?

我会创建一个toString方法并显示你想要的东西,这将消除额外的行问题。

这样,当您以video.getType();结束时,您将确保它按您希望的方式运作。

答案 2 :(得分:1)

是的,这是一个令人难以置信的愚蠢错误。

你们帮我解决了问题。发生的事情是我正在读取来自txt文件的视频名称,如下所示:

movie1,
movie2,
...

我将分隔符设置为“,”因此它正在读取“movie1”然后“\ r \ nmovie2”

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

答案 3 :(得分:0)

尝试使用savedScore以避免额外的行。

答案 4 :(得分:-1)

尝试使用System.out.print("someString")代替System.out.println("someString")