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,或者更改我的代码以逐行读入,而不是只读入下一个值。
这让我很烦。无论出于何种原因,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,或者更改我的代码以逐行读入,而不是只读入下一个值。