用于大学课程的Java项目我有一种方法可以将ASCII图像保存为单线字符串,另一种方法叫做toString,重建此ASCII图像并以字符串形式返回。当我在Eclipse上运行我的程序时,我的输出在控制台上看起来很好并且是多行的,并且它们应该存在换行符。但是当我使用带有重定向输出文件的命令行运行它时
java myprogram<输入>输出
输出中的文本是uniline而没有换行符
以下是方法的代码
public String toString(){
String output = "";
for(int i=0; i<height; i++){
output=output+image.substring(i*width, i*width+width)+"\n";
}
return output;
}
我该怎么做才能获得多行输出文本文件
答案 0 :(得分:3)
可能是\n
不是您正在运行的操作系统的正确行分隔符。使用Java时,最好使用System.getProperty("line.separator");
创建换行符,如this will ensure you are using the correct one for the platform。
答案 1 :(得分:0)
Windows时使用\ r \ n的更快解决方案:
public String toString() {
final String EOL = System.getProperty("line.separator");
final int EOL_LENGTH = EOL.length();
StringBuilder output = new StringBuilder(image.length() + EOL_LENGTH * height);
output.append(image);
for (int i = 0; i < height; i++) {
output.insert(i*(width + EOL_LENGTH) + width, EOL);
}
return output.toString();
}