Java读取文件并对每行字符串进行排序

时间:2013-12-08 03:51:21

标签: java

我需要读取一个文本文件,然后按字母顺序将每个字符串排序到数组中(不需要担心区分大小写)。

我需要使用数组来进行二进制搜索。

以下是代码:

public class project2 {
    public static void main( String[] args ) throws IOException {
        String[] list = { "" }; 
        list = load_list( "wordlist.txt" );
        ArrayList<String> words =new ArrayList<String>(Arrays.asList(list));  

        File fileReader = new File( "wordlist.txt" );
        Scanner inputFile = new Scanner( fileReader );

        Collections.sort(words,String.CASE_INSENSITIVE_ORDER);

    }
    public static String[] load_list( String wordlist ) throws IOException {
        File fileReader = new File( "wordlist.txt" );
        Scanner inputFile = new Scanner( fileReader );
        List<String> L = new ArrayList<String>();
        while ( inputFile.hasNextLine() ) {
            L.add(inputFile.nextLine());
        }
        return L.toArray(new String[L.size()]);
    }
}

第一个代码块是我尝试阅读和排序

第二个块是读取每一串字符串

我领先于自己,但有人可以暗示使用这些代码的结果进行顺序/二分搜索吗?

1 个答案:

答案 0 :(得分:1)

包括以下导入。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

更改

ArrayList<String> words = Arrays.asList(list);  

ArrayList<String> words =new ArrayList<String>(Arrays.asList(list));  

如果你想忽略下面的案例使用。

  Collections.sort(words,String.CASE_INSENSITIVE_ORDER); 

<强>更新

像这样更改你的load_list()方法。

  public static String[] load_list( String filename ) throws IOException {
       File fileReader = new File( filename );
       Scanner inputFile = new Scanner( fileReader );
       List<String> L = new ArrayList<String>();
       while ( inputFile.hasNextLine() ) {
           L.add(inputFile.nextLine());
       }
       return L.toArray(new String[L.size()]);
}

像这样更改你的main()方法。

public static void main(String[] args) throws IOException {
      String[] list = { "" }; 
      list = load_list( "wordlist.txt" );
      ArrayList<String> words = new ArrayList<String>(Arrays.asList(list)); 
      Collections.sort(words,String.CASE_INSENSITIVE_ORDER); 
}

并包含以下导入

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

打印ArrayList使用,如下所示

for(String s: list){
     System.out.println(s);
}