Problem A
字符反序
【问题描述】对于一个文本文件text1.dat,编写一个程序,将该文件中的每一行字符颠倒顺序后输出到另一个文件text2.dat中。
【输入文件】输入文件为当前目录下的text1.dat,该文件含有多行任意字符,也可能有空行。每个文本行最长不超过80个字符。在最后一行的结尾也有一个回车符。
【输出文件】输出文件为当前目录下的text2.dat。
【样例输入】设输入文件text1.dat为:
This is a test!
Hello, world!
How are you?
【样例输出】输出文件text2.dat为:
!tset a si sihT
!dlrow ,olleH
?uoy era woH
【样例说明】将输入文件反序输出。
【评分标准】输出文件应与输入文件的字符个数相等,并且符合题目规定的格式。如果你的程序输出正确,该测试点得满分,否则该测试点不得分。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class everydayjava {
public static void main(String[] args) {
String inputFileName = "text1.dat";
String outputFileName = "text2.dat";
try (BufferedReader reader = new BufferedReader(new FileReader(inputFileName));
BufferedWriter writer = new BufferedWriter(new FileWriter(outputFileName))) {
String line;
while ((line = reader.readLine()) != null) {
String reversedLine = reverseString(line);
writer.write(reversedLine);
writer.newLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
private static String reverseString(String str) {
StringBuilder reversed = new StringBuilder(str);
return reversed.reverse().toString();
}
}
在控制台输入输出的代码如下:
import java.util.Scanner;
public class everydayjava {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StringBuilder reversedText = new StringBuilder();
while (true) {
String line = scanner.nextLine();
if (line.isEmpty()) {
break;
}
String reversedLine = reverseString(line);
reversedText.append(reversedLine).append("\n");
}
scanner.close();
System.out.println(reversedText.toString());
}
private static String reverseString(String str) {
StringBuilder reversed = new StringBuilder(str);
return reversed.reverse().toString();
}
}