【发布时间】:2011-04-22 03:02:41
【问题描述】:
如何通过将值分配给数组来正确地对文本文件进行冒泡排序。 在下面的代码中,我尝试将文本文件中的值分配给字符串,同时还有一些东西要获取。然后我使用了一个 for 循环将我获取的那个分配给数组。 然后尝试使用冒泡排序希望将我获取的数字从最高到最低排序。但我得到这个作为输出:
5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78 78
12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29
这是我的代码:
try{
int i;
String ss;
FileReader fr;
fr = new FileReader (new File("X:\\file.txt"));
BufferedReader br = new BufferedReader (fr);
while ((ss = br.readLine()) != null) {
String[] sv = ss.split(" ");
String splayer_name=sv[1];
String s_player_score=sv[2];
for(int xy=0;xy<player_name.length;xy++){
player_name[xy]=splayer_name;
player_score[xy]=Integer.parseInt(s_player_score);
}
bubble_srt(player_score, player_score.length);
for(i = 0; i <player_score.length; i++)
System.out.print(player_score[i]+" ");
System.out.println();
}
}catch(Exception e){}
请帮忙,
更新: 有人问文件结构,你指的是这个: 这是file.txt,我获取的是最右边的数字:
1 a 5
2 b 10
5 x 4
7 h 20
【问题讨论】:
-
你能提供更多关于输入文件结构的信息吗? 1 行一个[玩家分数]?
-
另外,在 split() 之后打印出 sv[] 数组,看看里面有什么。
-
从您的代码看来,文本文件必须有每个玩家一行和一个分数? “ ”?澄清会有所帮助
-
@tony ennis:尝试打印sv,它存储了文本文件中的所有数据
-
homework标签?这是我能想到用 Java 编写冒泡排序的唯一原因。否则你可以使用Collections.sort()
标签: java arrays text-files bufferedreader