【发布时间】:2014-04-04 01:52:07
【问题描述】:
我已经被这个问题困扰了很长时间,我不知道该怎么办。 基本上我有一个包含人名的文本文件,然后是学生编号,然后是这样的奖金:
Green%3243%1000
Kevin%7657%400
Frank%345%10000
Bob%5435%5000
Stefan%31231%1000
Javis%4532%100
IronMan%5435%2000
Lamp%534%3000
我想做的是根据最后一个数字对数组进行排序。
我试过这个可憎的东西(不要费心去读它的垃圾):
boolean flag = true;
String temp;
int temp1;
int temp2;
while (flag){
flag = false;
for(int j=0; j < list.size() -1; j++ ){
System.out.println(list.get(j));
Scanner s = new Scanner(list.get(j)).useDelimiter("%");
s.next();
s.next();
temp1 = s.nextInt();
Scanner s2 = new Scanner(list.get(j+1)).useDelimiter("%");
s2.next();
s2.next();
temp2 = s2.nextInt();
if (temp1 < temp2){
temp = list.get(j);
list.add(j, list.get(j+1));
list.add(j+1,temp);
flag = true;
}
}
}
但它只是无限循环。我虽然只是将数组列表修补成冒泡排序。
如果有人有任何想法并愿意分享,将不胜感激。
【问题讨论】:
标签: java arrays sorting arraylist delimiter