Estou com o seguinte problema:
Preciso ordenar os pilotos (arquivo .dat) em ordem decrescente, atribuir a pontuação (vetor PONTOS) e carregar na JTble.
Acho que vendo o código fica mais evidente:
public class MundialFormula12008 {
public static void main(String[] args) throws IOException {
// Declaração de variáveis
Vector<String> dados;
final int[] PONTOS = { 10, 8, 6, 5, 4, 3, 2, 1 };
final String[] NOME_COLUNAS = { "Posição", "Pilotos", "AUSTRALIA",
"MALASIA", "BAHREIN", "ESPANHA", "TURQUIA", "MONACO", "CANADA",
"FRANCA", "INGLATERRA", "ALEMANHA", "HUNGRIA", "EUROPA",
"Total" };
Vector<String> nomeColunas = new Vector<String>();
for (int x = 0; x < NOME_COLUNAS.length; x++) {
nomeColunas.add(NOME_COLUNAS[x]);
}
final String[][] PILOTOS = {
{ "Adrian Sutil", "Alemanha", "Force India" },
{ "Anthony Davidson", "Inglaterra", "Super Aguri" },
{ "David Coulthard", "Escócia", "Red Bull" },
{ "Felipe Massa", "Brasil", "Ferrari" },
{ "Fernando Alonso", "Espanha", "Renault" },
{ "Giancarlo Fisichella", "Itália", "Force India" },
{ "Heikki Kovalainen", "Finlândia", "McLaren" },
{ "Jarno Trulli", "Itália", "Toyota" },
{ "Jenson Button", "Inglaterra", "Honda" },
{ "Kimi Raikkönen", "Finlândia", "Ferrari" },
{ "Lewis Hamilton", "Inglaterra", "McLaren" },
{ "Mark Webber", "Austrália", "Red Bull" },
{ "Nélson Ângelo Piquet", "Brasil", "Renault" },
{ "Nick Heidfeld", "Alemanha", "BMW Sauber" },
{ "Nico Rosberg", "Alemanha", "Williams" },
{ "Robert Kubica", "Polônia", "BMW Sauber" },
{ "Rubens Barrichello", "Brasil", "Honda" },
{ "Sèbastien Bourdais", "França", "Toro Rosso" },
{ "Takuma Sato", "Japão", "Super Aguri" },
{ "Timo Glock", "Alemanha", "Toyota" }, };
Vector<Vector> tabelaClassificacao = new Vector<Vector>();
for (int x = 0; x < PILOTOS.length; x++) {
dados = new Vector<String>();
dados.add(Integer.toString(x + 1));
dados.add(PILOTOS[x][0]);
for (int y = 0; y < NOME_COLUNAS.length; y++) {
dados.add(" - ");
}
tabelaClassificacao.add(dados);
}
Vector<Vector> dadosProvas = new Vector<Vector>();
DefaultTableModel modeloDados;
JScrollPane barraRolagem;
JTable tabela;
Vector<Vector> prova;
// Entrada de dados - Ler Arquivo
File arquivo = new File("dadosProvas.dat");
Scanner entrada = new Scanner(arquivo.getAbsoluteFile());
String linhaEntrada;
int a;
String[] valores;
// Entrada de dados
while (entrada.hasNext()) {
linhaEntrada = entrada.nextLine();
valores = linhaEntrada.split(";");
dados = new Vector<String>();
for (a = 0; a < valores.length; a++) {
dados.add(valores[a]);
}
dadosProvas.add(dados);
}
// Processamento dos dados - gerar a tabela de classificação
String pais;
int hora;
int min;
double seg;
double tempo;
String linha;
String[] w;
int posicao = 0;
for (posicao = 0; posicao < dadosProvas.size();) {
dados = dadosProvas.get(posicao);
pais = dados.get(0);
prova = new Vector<Vector>();
for (int s = posicao; s < dadosProvas.size(); s++) {
dados = dadosProvas.get(s);
if (pais.equals(dados.get(0))) {
prova.add(dados);
posicao++;
} else {
posicao = s;
break;
}
}
// teste 1
for (int x = 0; x < prova.size(); x++) {
dados = prova.get(x);
for (int y = 0; y < dados.size(); y++) {
System.out.print(dados.get(x) + ";");
}
System.out.println();
}
// Normalizar o tempo
for (int x = 0; x < prova.size(); x++) {
dados = prova.get(x);
linha = dados.get(0);
System.out.println("linha: " + linha);
if (linha.contains(":")) {
w = linha.split(":");
hora = Integer.parseInt(w[0]) * 3600;
min = Integer.parseInt(w[1]) * 60;
seg = Double.parseDouble(w[2]);
tempo = hora + min + seg;
dados.set(2, Double.toString(tempo));
prova.set(x, dados);
}
}
}
// Saída da informação
modeloDados = new DefaultTableModel(tabelaClassificacao, nomeColunas);
tabela = new JTable(modeloDados);
barraRolagem = new JScrollPane(tabela);
barraRolagem
.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
barraRolagem
.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
JOptionPane.showMessageDialog(null, barraRolagem,
"Tabela Fórmula1 Temporada 2008",
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
}
O .dat é o seguinte:
Austrália 12/3 LewisHamilton 1:34:50.616
Austrália 12/3 NickHeidfeld 1:34:56.094
Austrália 12/3 NicoRosberg 1:34:58.779
Austrália 12/3 FernandoAlonso 1:34:67.797
Austrália 12/3 HeikkiKovalainen 1:34:68.613
Austrália 12/3 KazukiNakajima 1voltas
Austrália 12/3 SebastienBourdais 3voltas
Austrália 12/3 KimiRäikkönen 5voltas
Austrália 12/3 RobertKubica 11voltas
Austrália 12/3 TimoGlock 15voltas
Austrália 12/3 TakumaSato 26voltas
Austrália 12/3 NelsonÂngeloPiquet 28voltas
Austrália 12/3 FelipeMassa 29voltas
Austrália 12/3 DavidCoulthard 36voltas
Austrália 12/3 JarnoTrulli 39voltas
Austrália 12/3 AdrianSutil 50voltas
Austrália 12/3 MarkWebber 56voltas
Austrália 12/3 JensonButton 57voltas
Austrália 12/3 AnthonyDavidson 57voltas
Austrália 12/3 SebastianVettel 58voltas
Austrália 12/3 GiancarloFisichella 58voltas
Austrália 12/3 RubensBarrichello 0
Malásia 23/3 KimiRäikkönen 1:31:18.555 10
Malásia 23/3 RobertKubica 19.570 8
Malásia 23/3 HeikkiKovalainen 38.450 6
Malásia 23/3 JarnoTrulli 45.832 5
Malásia 23/3 LewisHamilton 46.548 4
Malásia 23/3 NickHeidfeld 49.833 3
Malásia 23/3 MarkWebber 1:08.130 2
Malásia 23/3 FernandoAlonso 1:10.041 1
Malásia 23/3 DavidCoulthard 1:16.220 0
Malásia 23/3 JensonButton 1:26.214 0
Malásia 23/3 NelsonÂngeloPiquet 1:32.202 0
Malásia 23/3 GiancarloFisichella 1volta 0
Malásia 23/3 RubensBarrichello 1volta 0
Malásia 23/3 NicoRosberg 1volta 0
Malásia 23/3 AnthonyDavidson 1volta 0
Malásia 23/3 TakumaSato 2voltas 0
Malásia 23/3 KazukiNakajima 2voltas 0
Malásia 23/3 SebastianVettel 0
Malásia 23/3 FelipeMassa 0
Malásia 23/3 AdrianSutil 0
Malásia 23/3 TimoGlock 0
Malásia 23/3 SebastienBourdais 0
Bahrein 06/4 FelipeMassa 57voltas 10
Bahrein 06/4 KimiRäikkönen 3.3 8
Bahrein 06/4 RobertKubica 4.9 6
Bahrein 06/4 NickHeidfeld 8.4 5
Bahrein 06/4 HeikkiKovalainen 28.7 4
Bahrein 06/4 JarnoTrulli 41.3 3
Bahrein 06/4 MarkWebber 45.4 2
Bahrein 06/4 NicoRosberg 55.8 1
Bahrein 06/4 TimoGlock 69.5
Bahrein 06/4 FernandoAlonso 77.1
Bahrein 06/4 RubensBarrichello 77.8
Bahrein 06/4 GiancarloFisichella 1volta 0
Bahrein 06/4 LewisHamilton 1volta 0
Bahrein 06/4 KazukiNakajima 1volta 0
Bahrein 06/4 SebastienBourdais 1volta 0
Bahrein 06/4 AnthonyDavidson 1volta 0
Bahrein 06/4 TakumaSato 1volta 0
Bahrein 06/4 DavidCoulthard 1volta 0
Bahrein 06/4 AdrianSutil 2voltas 0
Bahrein 06/4 NelsonÂngeloPiquet 0
Bahrein 06/4 JensonButton 0
Bahrein 06/4 SebastianVettel 0
Espanha 27/4 KimiRäikkönen 1:38:19.051 10
Espanha 27/4 FelipeMassa 3.228 8
Espanha 27/4 LewisHamilton 4.187 6
Espanha 27/4 RobertKubica 5.694 5
Espanha 27/4 MarkWebber 35.938 4
Espanha 27/4 JensonButton 53.010 3
Espanha 27/4 KazukiNakajima 58.244 2
Espanha 27/4 JarnoTrulli 59.435
Espanha 27/4 NickHeidfeld 1:03.073
Espanha 27/4 GiancarloFisichella 1volta
Espanha 27/4 TimoGlock 0
Espanha 27/4 DavidCoulthard 0
Espanha 27/4 TakumaSato 0
Espanha 27/4 NicoRosberg 0
Espanha 27/4 FernandoAlonso 0
Espanha 27/4 RubensBarrichello 0
Espanha 27/4 HeikkiKovalainen 0
Espanha 27/4 AnthonyDavidson 0
Espanha 27/4 SebastienBourdais 0
Espanha 27/4 NelsonÂngelo 0
Espanha 27/4 SebastianVettel 0
Espanha 27/4 AdrianSutil 0
Turquia 11/5 FelipeMassa 58voltas 10
Turquia 11/5 LewisHamilton 3.7 8
Turquia 11/5 KimiRäikkönen 4.2 6
Turquia 11/5 RobertKubica 21.9 5
Turquia 11/5 NickHeidfeld 38.7 4
Turquia 11/5 FernandoAlonso 53.7 3
Turquia 11/5 MarkWebber 54.2 2
Turquia 11/5 NicoRosberg 71.4 1
Turquia 11/5 DavidCoulthard 75.2
Turquia 11/5 JarnoTrulli 76.3
Turquia 11/5 JensonButton 1volta
Turquia 11/5 HeikkiKovalainen 1volta
Turquia 11/5 TimoGlock 1volta
Turquia 11/5 RubensBarrichello 1volta
Turquia 11/5 NelsonÂngeloPiquet 1volta
Turquia 11/5 AdrianSutil 1volta
Turquia 11/5 SebastianVettel 1volta
Turquia 11/5 SebastienBourdais 0
Turquia 11/5 KazukiNakajima 0
Turquia 11/5 GiancarloFisichella 0
Mônaco 25/5 LewisHamilton 2 10
Mônaco 25/5 RobertKubica 4.1 8
Mônaco 25/5 FelipeMassa 7.1 6
Mônaco 25/5 MarkWebber 16. 5
Mônaco 25/5 SebastianVettel 20.1 4
Mônaco 25/5 RubensBarrichello 21.6 3
Mônaco 25/5 KazukiNakajima 22.5 2
Mônaco 25/5 HeikkiKovalainen 36.2 1
Mônaco 25/5 KimiRäikkönen 40
Mônaco 25/5 FernandoAlonso 1volta
Mônaco 25/5 JensonButton 1volta
Mônaco 25/5 TimoGlock 1volta
Mônaco 25/5 JarnoTrulli 1volta
Mônaco 25/5 NickHeidfeld 1volta
Mônaco 25/5 AdrianSutil 0
Mônaco 25/5 NicoRosberg 0
Mônaco 25/5 NelsonÂngeloPiquet 0
Mônaco 25/5 GiancarloFisichella 0
Mônaco 25/5 DavidCoulthard 0
Mônaco 25/5 SebastienBourdais 0
Canadá 08/6 RobertKubica 70voltas 10
Canadá 08/6 NickHeidfeld 16.495 8
Canadá 08/6 DavidCoulthard 23.352 6
Canadá 08/6 TimoGlock 42.627 5
Canadá 08/6 FelipeMassa 43.934 4
Canadá 08/6 JarnoTrulli 47.775 3
Canadá 08/6 RubensBarrichello 53.597 2
Canadá 08/6 SebastianVettel 54.120 1
Canadá 08/6 HeikkiKovalainen 54.433
Canadá 08/6 NicoRosberg 57.749
Canadá 08/6 JensonButton 1:07.540
Canadá 08/6 MarkWebber 1:11.229
Canadá 08/6 SebastienBourdais 1volta
Canadá 08/6 GiancarloFisichella 0
Canadá 08/6 KazukiNakajima 0
Canadá 08/6 FernandoAlonso 0
Canadá 08/6 NelsonÂngeloPiquet 0
Canadá 08/6 KimiRäikkönen 0
Canadá 08/6 LewisHamilton 0
Canadá 08/6 AdrianSutil 0
França 22/6 FelipeMassa 1:31:50.245 10
França 22/6 KimiRäikkönen 17.984 8
França 22/6 JarnoTrulli 28.250 6
França 22/6 HeikkiKovalainen 28.929 5
França 22/6 RobertKubica 30.512 4
França 22/6 MarkWebber 40.304 3
França 22/6 NelsonÂngeloPiquet 41.033 2
França 22/6 FernandoAlonso 43.372 1
França 22/6 DavidCoulthard 51.021
França 22/6 LewisHamilton 54.538
França 22/6 TimoGlock 57.700
França 22/6 SebastianVettel 58.065
França 22/6 NickHeidfeld 1:02.079
França 22/6 RubensBarrichello 1volta
França 22/6 KazukiNakajima 1volta
França 22/6 NicoRosberg 1volta
França 22/6 SebastienBourdais 1volta
França 22/6 GiancarloFisichella 1volta
França 22/6 AdrianSutil 1volta
França 22/6 JensonButton 0
Inglaterra 06/7 LewisHamilton 1:39:09.440 10
Inglaterra 06/7 NickHeidfeld 1:08.5 8
Inglaterra 06/7 RubensBarrichello 1:22.2 6
Inglaterra 06/7 KimiRäikkönen 1volta 5
Inglaterra 06/7 HeikkiKovalainen 1volta 4
Inglaterra 06/7 FernandoAlonso 1volta 3
Inglaterra 06/7 JarnoTrulli 1volta 2
Inglaterra 06/7 KazukiNakajima 1volta 1
Inglaterra 06/7 NicoRosberg 1volta
Inglaterra 06/7 MarkWebber 1volta
Inglaterra 06/7 SébastienBourdais 1volta
Inglaterra 06/7 TimoGlock 1volta
Inglaterra 06/7 FelipeMassa 2volta
Inglaterra 06/7 RobertKubica 21voltas
Inglaterra 06/7 JensonButton 22voltas
Inglaterra 06/7 NelsonÂngeloPiquet 25voltas
Inglaterra 06/7 GiancarloFisichella 34voltas
Inglaterra 06/7 AdrianSutil 50voltas
Inglaterra 06/7 SebastianVettel 60voltas
Inglaterra 06/7 DavidCoulthard 60voltas
Alemanha 20/7 LewisHamilton 1:31:20.874 10
Alemanha 20/7 NelsonÂngeloPiquet 5.586 8
Alemanha 20/7 FelipeMassa 9.339 6
Alemanha 20/7 NickHeidfeld 9.825 5
Alemanha 20/7 HeikkiKovalainen 12.411 4
Alemanha 20/7 KimiRäikkönen 14.483 3
Alemanha 20/7 RobertKubica 22.603 2
Alemanha 20/7 SebastianVettel 33.282 1
Alemanha 20/7 JarnoTrulli 37.199
Alemanha 20/7 NicoRosberg 37.658
Alemanha 20/7 FernandoAlonso 38.625
Alemanha 20/7 SébastienBourdais 39.111
Alemanha 20/7 DavidCoulthard 54.971
Alemanha 20/7 KazukiNakajima 1:00.003
Alemanha 20/7 AdrianSutil 1:09.488
Alemanha 20/7 GiancarloFisichella 59.093
Alemanha 20/7 JensonButton 1volta
Alemanha 20/7 RubensBarrichello 17voltas
Alemanha 20/7 MarkWebber 27voltas
Alemanha 20/7 TimoGlock 32voltas
Hungria 03/8 HeikkiKovalainen 1:37:27.067 10
Hungria 03/8 TimoGlock 11.061 8
Hungria 03/8 KimiRäikkönen 16.856 6
Hungria 03/8 FernandoAlonso 21.614 5
Hungria 03/8 LewisHamilton 23.048 4
Hungria 03/8 NelsonÂngeloPiquet 32.298 3
Hungria 03/8 JarnoTrulli 36.449 2
Hungria 03/8 RobertKubica 48.321 1
Hungria 03/8 MarkWebber 58.834
Hungria 03/8 NickHeidfeld 1:07.709
Hungria 03/8 DavidCoulthard 1:10.407
Hungria 03/8 JensonButton 1volta
Hungria 03/8 KazukiNakajima 1volta
Hungria 03/8 NicoRosberg 1volta
Hungria 03/8 GiancarloFisichella 1volta
Hungria 03/8 RubensBarrichello 2voltas
Hungria 03/8 FelipeMassa 3voltas
Hungria 03/8 SébastienBourdais 3voltas
Hungria 03/8 AdrianSutil 8voltas
Hungria 03/8 SebastianVettel 48voltas
Europa 24/8 FelipeMassa 1:35:32.339 10
Europa 24/8 LewisHamilton 5.611 8
Europa 24/8 RobertKubica 37.353 6
Europa 24/8 HeikkiKovalainen 39.703 5
Europa 24/8 JarnoTrulli 50.684 4
Europa 24/8 SebastianVettel 52.625 3
Europa 24/8 TimoGlock 1:07.990 2
Europa 24/8 NicoRosberg 1:11.457 1
Europa 24/8 NickHeidfeld 1:22.177
Europa 24/8 SébastienBourdais 1:29.794
Europa 24/8 NelsonÂngeloPiquet 1:32.717
Europa 24/8 MarkWebber 1volta
Europa 24/8 JensonButton 1volta
Europa 24/8 GiancarloFisichella 1volta
Europa 24/8 KazukiNakajima 1volta
Europa 24/8 RubensBarrichello 1volta
Europa 24/8 DavidCoulthard 1volta
Europa 24/8 KimiRäikkönen 12voltas
Europa 24/8 AdrianSutil 16voltas
Europa 24/8 FernandoAlonso 57voltas
Ao compilar no Eclipse dá o sequinte erro:
Exception in thread "main" java.lang.NumberFormatException: For input string: "Austrália LewisHamilton 1"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at F.MundialFormula12008.main(MundialFormula12008.java:194)
Meu professor de programação quer este programa para segunda e tá valendo 3 pontos na nota semestral. Eu tô quase espancando meu Pc.