我正在开发一个Java程序,在该程序中,我必须读取文件的内容,然后以相反的方式打印每行。例如文字:
Public Class Helloprinter
Public static void
在运行我的反向程序后将打印以下内容:
retnirPolleh ssalc cilbup
diov citats cilbup
这是到目前为止我得到的:
public static void main(String[] args) throws FileNotFoundException {
// Prompt for the input and output file names
ArrayList<String> list = new ArrayList<String>();
//String reverse = "";
Scanner console = new Scanner(System.in);
System.out.print("Input file: ");
String inputFileName = console.next();
System.out.print("Output file: ");
String outputFileName = console.next();
// Construct the Scanner and PrintWriter objects for reading and writing
File inputFile = new File(inputFileName);
Scanner in = new Scanner(inputFile);
PrintWriter out = new PrintWriter(outputFileName);
String aString = "";
while(in.hasNextLine())
{
String line = in.nextLine();
list.add(line);
}
in.close();
for(int i = 0; i <list.size(); i++)
{
aString = list.get(i);
aString = new StringBuffer(aString).reverse().toString();
out.printf("%s", " " + aString);
}
out.close();
}
}
编辑:
罗伯特(Robert)发布后,这帮助我朝着正确的方向前进。问题在于,它不能保持一致。
Public Class Helloprinter
Public static void
在运行我的程序后变为:
retnirPolleh ssalc cilbup diov citats cilbup
它需要保持线路布局相同。所以应该是:
retnirPolleh ssalc cilbup
diov citats cilbup
最佳答案
你的问题就在这里
out.printf("%s", " " + aString);
这不会输出换行符。我也不确定为什么您要在其中留一个空格。
应该是:
out.println( aString );
要么
out.printf("%s%n", aString);