簡體   English   中英

JAVA字符串io文件中字符串的反向順序

[英]JAVA String Reversing order of string in file io

我必須編寫代碼,以顛倒字符串的順序並將其寫入新文件。 例如 :

嗨,我叫鮑勃。

我是十歲。

相反將是:

我是十歲。

嗨,我叫鮑勃。

到目前為止,這就是我所擁有的。 不知道為outWriter打印語句寫什么。 任何幫助將不勝感激。 謝謝!

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class FileRewinder {
    public static void main(String[] args) {
        File inputFile = new File("ascii.txt");

        ArrayList<String> list1 = new ArrayList<String>();
        Scanner inputScanner;
        try {
        inputScanner = new Scanner(inputFile);
        } catch (FileNotFoundException f) {
            System.out.println("File not found :" + f);
            return;
        }
        while (inputScanner.hasNextLine()) {
            String curLine = inputScanner .nextLine();

            System.out.println(curLine );
        }
        inputScanner.close();
    File outputFile = new File("hi.txt");
    PrintWriter outWriter = null;
    try {
        outWriter = new PrintWriter(outputFile);
    } catch (FileNotFoundException e) {
        System.out.println("File not found :" + e);
        return;
    }
    outWriter.println(???);


    outWriter.close();




    }
}

我的建議是先讀取整個文件,然后將句子(可以用.分割)存儲在LinkedList<String> (這將保持插入順序)

然后使用Iterator並以相反的順序獲取句子。 並將它們寫入文件。 確保放. 在每個句子之后。

System.out.println(curLine ); 添加list1.add(curline); 將您的文字行放入列表中。

最后,向后遍歷list1創建一個循環:

for(int i = list1.size() - 1 , i > 0, --i) {
     outWriter.println(list1[i]);
}

如果文件包含可以加載到內存中的行數。 您可以將所有行讀入列表,顛倒列表的順序,然后將列表寫回到磁盤。

public class Reverse {
    static final Charset FILE_ENCODING = StandardCharsets.UTF_8;

    public static void main(String[] args) throws IOException {
        List<String> inLines = Files.readAllLines(Paths.get("ascii.txt"), FILE_ENCODING);
        Collections.reverse(inLines);
        Files.write(Paths.get("hi.txt"), inLines, FILE_ENCODING);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM