我需要读取一个文本文件,然后按字母顺序将每个字符串排序到数组中(不需要担心区分大小写)。
我需要使用数组来进行二进制搜索。
以下是代码:
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()]);
}
}
第一个代码块是我尝试阅读和排序
第二个块是读取每一串字符串
我领先于自己,但有人可以暗示使用这些代码的结果进行顺序/二分搜索吗?
答案 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);
}