Переверните и переверните файл. (используйте на l oop) - PullRequest
0 голосов
/ 20 марта 2020

У меня есть файл, который находится в TXT, он имеет несколько строк. Мне удалось отменить его, но я также пытаюсь сделать так, чтобы последняя строка стала первой (по сути, переверните и переверните ее)

import java.io.FileNotFoundException;
import java.util.Scanner;
public class Reverseing {

   public static void main(String[] args) throws FileNotFoundException {

       Scanner fileScan, sc;
        sc=new Scanner(System.in);
        fileScan = new Scanner("Text.txt" ));
          int check= 0;
         String inputString;
         String outPutString = "";

        while (true) {

              System.out.println("1) Reverse the string.");


              check= sc.nextInt();

              switch (check) {
              case 1:
                  while (fileScan.hasNext()) {
                      firstString= fileScan.nextLine();
                      System.out.println();
                      int check = firstString.length();
                      for (int j = check-1 ; j > 0; j--) {   

                  System.out.print(firstString.charAt(j));'``

1 Ответ

0 голосов
/ 20 марта 2020

Чтобы перевернуть строки текстового файла, загрузите все строки в List, затем вызовите Collections.reverse(...), чтобы перевернуть строки.

Чтобы перевернуть символы линий, используйте StringBuilder и его reverse() метод. В отличие от вашей домашней реализации, StringBuilder правильно обрабатывает символы из дополнительных плоскостей Unicode, например emojis.

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Test {
    public static void main(String[] args) throws Exception {
        // Hope this works ? ?
        List<String> lines;
        try (Stream<String> lineStream = Files.lines(Paths.get("src/main/java/Test.java"))) {
            lines = lineStream.map(line -> new StringBuilder(line).reverse().toString())
                              .collect(Collectors.toList());
        }
        Collections.reverse(lines);
        Files.write(Paths.get("Reversed.txt"), lines);
    }
}

Вывод (Reversed.txt)

}
}   
;)senil ,)"txt.desreveR"(teg.shtaP(etirw.seliF      
;)senil(esrever.snoitcelloC     
}       
;))(tsiLot.srotcelloC(tcelloc.                              
))(gnirtSot.)(esrever.)enil(redliuBgnirtS wen >- enil(pam.maertSenil = senil            
{ )))"avaj.tseT/avaj/niam/crs"(teg.shtaP(senil.seliF = maertSenil >gnirtS<maertS( yrt       
;senil >gnirtS<tsiL     
? ? skrow siht epoH //        
{ noitpecxE sworht )sgra ][gnirtS(niam diov citats cilbup   
{ tseT ssalc cilbup

;maertS.maerts.litu.avaj tropmi
;srotcelloC.maerts.litu.avaj tropmi
;tsiL.litu.avaj tropmi
;snoitcelloC.litu.avaj tropmi
;shtaP.elif.oin.avaj tropmi
;seliF.elif.oin.avaj tropmi
...