簡體   English   中英

在 Java 中對文本文件進行排序

[英]Sorting a text file in Java

我有一個包含單詞列表的文本文件,我需要使用 Java 按字母順序對這些單詞進行排序。這些單詞位於單獨的行中。

我將如何 go 將它們讀入數組列表然后對其進行排序?

這是一個簡單的四步過程,其中Stackoverflow Questions解決了四個步驟中的三個:

  1. 閱讀每一行並將其轉換為Java String
  2. 將每個Java字符串存儲在一個數組中(不要認為您需要這個字符串的引用。)
  3. 對數組進行排序
  4. 寫出數組中的每個Java String
import java.io.*;
import java.util.*;

public class example
{
    TreeSet<String> tree=new TreeSet<String>();
    public static void main(String args[])
    {
        new example().go();
    }
    public void go()

    {
        getlist();
        System.out.println(tree);

    }
     void getlist()
    {
        try
        {
            File myfile= new File("C:/Users/Rajat/Desktop/me.txt");
            BufferedReader reader=new BufferedReader(new FileReader(myfile));
            String line=null;
            while((line=reader.readLine())!=null){
                addnames(line);


            }
        reader.close();
        }

        catch(Exception ex)
        {
            ex.printStackTrace();
        }

    }
    void addnames(String a)
    {
           tree.add(a);
           for(int i=1;i<=a.length();i++)
           {

           }
    }
}

這是使用“收藏夾”排序的示例:

public static void sortFile() throws IOException
{     
    FileReader fileReader = new FileReader("C:\\words.txt");
    BufferedReader bufferedReader = new BufferedReader(fileReader);
    List<String> lines = new ArrayList<String>();
    String line = null;
    while ((line = bufferedReader.readLine()) != null) {
        lines.add(line);
    }
    bufferedReader.close();

    Collections.sort(lines, Collator.getInstance());

    FileWriter writer = new FileWriter("C:\\wordsnew.txt"); 
    for(String str: lines) {
      writer.write(str + "\r\n");
    }
    writer.close();
}

您還可以使用自己的排序規則,如下所示:

Locale lithuanian = new Locale("lt_LT");
Collator lithuanianCollator = Collator.getInstance(lithuanian);
public List<String> readFile(String filePath) throws FileNotFoundException {
    List<String> txtLines = new ArrayList<>();
    try {
        BufferedReader reader = new BufferedReader(new FileReader(filePath));
        String line;
        while (!((line = reader.readLine()) == null)) {
            txtLines.add(line);
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return txtLines.stream().sorted().collect(Collectors.toList());
}

暫無
暫無

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

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