質問のコメントに基づいて、これはINPUT.TXTというファイルを読み取り、出力と呼ばれる新しいファイルに保存します。 tあなたの方法を使ってString
を逆転させてください。
input.txt内のすべての行が最初にList
に追加されます。
List
は最後の要素から逆方向に反復され、各反復で反転されてString
がoutput.txtに書き込まれます。
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class Example {
public static void main(String[] args) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {
Scanner scanner = new Scanner(new File("input.txt"));
List<String> fileContents = new ArrayList<>();
while (scanner.hasNextLine()) {
fileContents.add(scanner.nextLine());
}
ListIterator<String> it = fileContents.listIterator(fileContents.size());
while (it.hasPrevious()) {
writer.write(printBackwards(it.previous()));
writer.newLine();
}
}
}
public static String printBackwards(String s) {
if (s.length() <= 1) {
return s;
} else {
return printBackwards(s.substring(1, s.length())) + s.charAt(0);
}
}
}
あなただけの標準出力に表示したいただし場合は、次のようにそれを調整することができます。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class Example {
public static void main(String[] args) throws FileNotFoundException {
Scanner scanner = new Scanner(new File("input.txt"));
List<String> fileContents = new ArrayList<>();
while (scanner.hasNextLine()) {
fileContents.add(scanner.nextLine());
}
ListIterator<String> it = fileContents.listIterator(fileContents.size());
while (it.hasPrevious()) {
System.out.println(printBackwards(it.previous()));
}
}
public static String printBackwards(String s) {
if (s.length() <= 1) {
return s;
} else {
return printBackwards(s.substring(1, s.length())) + s.charAt(0);
}
}
}
または私は以前の私のコメントで述べたように、あなただけの全体を読むことができますそれを一度にファイルおよびリバース:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Example {
public static void main(String[] args) throws FileNotFoundException {
System.out.println(printBackwards(new Scanner(new File("file.txt")).useDelimiter("\\Z").next()));
}
public static String printBackwards(String s) {
if (s.length() <= 1) {
return s;
} else {
return printBackwards(s.substring(1, s.length())) + s.charAt(0);
}
}
}
を、私は、これは宿題で想像が、これは(再帰を使用していない)1行のソリューションは、「INPUT.TXT」を読み取る: 'のSystem.out.println(新しいStringBuilderのは、(新スキャナ(新しいファイル( "input.txt"))。useDelimiter( "\\ Z ").next())。reverse());' –
[Javaで文字列を再帰的に逆転させる最良の方法は?](http://stackoverflow.com/questions/859562/whats-the-best)の可能な複製-way-to-recursively-reverse-a-string-in-java) – Hypino
@Hypino OPによって投稿されたコードを見れば、彼はすでに "reverse string metod"を実装しているはずです。 /ファイルから入出力を書き込む。 – user6904265