下面你可以看到我的代码。它从字典中读取单词并将与特定模板匹配的单词复制到test.txt。我的问题是如何首先按LENGTH排序test.txt中的单词,然后按字母顺序排序。例如。按字母顺序排序,然后按字母顺序排列
我:
- 车
- 鼠标
- 数
- ABC
- 遗传资源
我需要什么
- ABC
- 车
- 遗传资源
- 鼠标
- 数
我的目录包含超过10000个字。
package test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.regex.Pattern;
public class moja {
public static void main(String[] args) {
try {
File file = new File("SloveneLexicon.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(
new FileInputStream(file), "UTF8"));
String vrstica;
File test = new File("test.txt");
FileWriter fw = new FileWriter(test);
while ((vrstica = bufferedReader.readLine()) != null) {
String s = vrstica;
String[] dobi_besedo_v_vrstici = s.split("\\s+");
String prva_beseda = dobi_besedo_v_vrstici[0];
String tretja_beseda = dobi_besedo_v_vrstici[2];
String nova_vrstica = System.getProperty("line.separator");
Pattern ena = Pattern.compile("S\\p{L}\\p{L}ei\\p{L}*");
if(ena.matcher(tretja_beseda).matches()){
fw.write(prva_beseda+nova_vrstica);
fw.write("\n");}
Pattern dva = Pattern.compile("P\\p{L}\\p{L}\\p{L}ei\\p{L}*");
if(dva.matcher(tretja_beseda).matches()){
fw.write(prva_beseda+nova_vrstica);
}
}
fw.close();
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
你尝试过什么?必须有成千上万的问题解释如何在Java中排序。 – 2014-10-28 19:03:57