java尝试按长度对名称进行排序
我试图从一个文件中读取5个名称的列表,确定每个名称的长度,并使用数组对长度进行排序。但是,我似乎不知道如何将名称的长度传递给数组。。。非常感谢您的帮助
import java.io.*;
import java.util.Arrays;
public class NewClass {
public static void main(String[] args) throws IOException,
FileNotFoundException {
String file = "names.txt";
processFile("names.txt");
}
public static void processFile (String file) throws IOException, FileNotFoundException{
BufferedReader inputReader =
new BufferedReader (new InputStreamReader
(new FileInputStream("names.txt")));
String line;
while (( line = inputReader.readLine()) != null){
int nameL =line.length();
}
/*public static void main (String [] args) {
*/
int [] aryNum;
aryNum= new int [5];
aryNum[0] = int nameL;
aryNum[1]=int nameL;
aryNum[2]=int nameL;
aryNum[3]=int nameL;
aryNum[4]=nameL;
Arrays.sort(aryNum);
int i;
for (i=0; i<aryNum.length; i++) {
System.out.println("" + aryNum[i]);
}
}
}
# 1 楼答案
如果要对数组中字符串的长度进行排序,那么实际上需要对数字进行排序:
如果要对名称(即字符串)进行排序,可以使用基于比较器排序的通用概念。比较器实现了一个行为,该行为按照特定标准对集合(或数组)的元素进行排序。有趣的是,您只需要将集合(或数组)所用类型的两个元素的比较提取出来。然后将比较器传递给排序方法,瞧!您将得到一个已排序的集合(或数组)。首先,让我们使用以下版本:
只需使用
compare
方法,就可以做很多事情,比如按照长度对所有字符串进行反向排序(首先是最长的字符串),或者根据每个字符串的某种分数对它们进行排序等等。这被称为抽象,是计算机编程中最重要的一项技能