Amigos,
Preciso fazer um programa que leia um arquivo de texto e retorne algumas estatísticas sobre o mesmo.
o arquivo é o seguinte (teste.txt):
onde temos respectivamente a data da final, nome da competição, local, pontos que vale, premio em dinheiro e o vencedor.
02.01.12/Brisbane/Australia/250/434250.0/Andy Murray
02.01.12/Chennai/India/250/398250.0/Milos Raonic
02.01.12/Doha/Qatar/250/1024000.0/Jo Wilfried Tsonga
09.01.12/Heineken Open/New Zealand/250/398250.0/David Ferrer
09.01.12/Apia Int. Sydney/Australia/250/434250.0/Jarkko Nieminen
16.01.12/Australian Open/Australia/2000/11806550.0/Novak Djokovic
30.01.12/Open Sud de France/France/250/398250.0/Tomas Berdych
13.02.12/ABN AMRO World/The Netherlands/500/1207500.0/Roger Federer
13.02.12/SAP Open/U.S.A./250/531000.0/Milos Raonic
13.02.12/Brasil Open 2012/Brazil/250/475300.0/Nicolas Almagro
20.02.12/Copa Claro/Argentina/250/484100.0/David Ferrer
20.02.12/Open 13/France/250/512750.0/Juan Martin Del Potro
20.02.12/Regions Morgan Keegan Champ/U.S.A./500/1155000.0/Jurgen Melzer
27.02.12/Abierto Mexicano Telcel/Mexico/500/1155000.0/David Ferrer
27.02.12/Delray Beach Int Tennis Cham/U.S.A./250/442500.0/Kevin Anderson
27.02.12/Dubai Duty Free Tennis Champ/U.A.E./500/1700475.0/Roger Federer
08.03.12/BNP Paribas Open/U.S.A./1000/4694969.0/Roger Federer
21.03.12/Sony Ericsson Open/U.S.A./1000/3973050.0/Novak Djokovic
e as estatísticas pedidas são:
a) A lista de torneios vencidos, em ordem decrescente, por cada competidor,juntamente com os nomes das competições. Se existirem dois jogadores com o
mesmo número de vitórias, o critério de desempate será o número de pontos obtidos. Caso os competidores tenham, também, o mesmo número de pontos, o
critério de desempate será a premiação obtida. No exemplo acima, Roger Federer seria o primeiro da lista com TRÊS torneios vencidos;
b) A lista com o número de pontos obtidos por cada jogador, em ordem decrescente (o competidor que tiver mais pontos deve ser o primeiro da listagem), juntamente
com os nomes das competições. Se existirem dois jogadores com o mesmo número de pontos, o critério de desempate será o número de vitórias. Caso os competidores
tenham, também, o mesmo número de vitórias, o critério de desempate será a premiação obtida. No exemplo do arquivo dado, Novak Djokovic é o líder deste
ranking;
c) A lista de países onde os torneios foram sediados, em ordem decrescente, juntamente com os nomes das competições. Se existirem dois países com o mesmo
número de torneios, o critério de desempate será o número de pontos fornecidos. Caso os países tenham, também, o mesmo número de pontos fornecidos aos
vencedores de seus torneios, o critério de desempate será a premiação fornecida. No exemplo fornecido, U.S.A. lideram este ranking com CINCO competições;
d) A lista com a premiação obtida pelos jogadores, em ordem decrescente, juntamente com os nomes dos torneios. Se existirem dois jogadores com a mesma
premiação, o critério de desempate será o número de pontos obtidos. Caso os competidores tenham, também, o mesmo número de pontos, o critério de
desempate será o número de vitórias.
Eu já fiz as classes (não sei se estão corretas) e também a leitura do arquivo. Como estou um pouco enrolado queria ajuda para desenvolver os métodos pedidos acima.
segue o meu inicio:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
class Data{ // classe data
int dia;
int mes;
int ano;
//public Data(int d, int m, int a){
// dia=d;
// mes=m;
// ano=a;
//}
}
class Competicao{ // classe competição
Data dia;
Data mes;
Data ano;
String nome;
String local;
int pontos;
float premio;
String vencedor;
public Competicao(Data d,Data m ,Data a ,String n,String l, int p, float prem, String v){ //construtores
dia=d;
mes=m;
ano=a;
nome=n;
local=l;
pontos=p;
premio=prem;
vencedor=v;
}
}
public class ad2_v3 {
public static void main(String[] args) {
//local da leitura------------------------------------------
try {
BufferedReader leitor = new BufferedReader(
new FileReader("c:\\teste.txt"));
String linha = leitor.readLine();
while (linha != null) {
//processar a linha lida------------------------------------
System.out.println(linha);
linha = leitor.readLine();
}
leitor.close();
} catch (FileNotFoundException ex) {
System.out.println("Erro " + ex);
} catch (IOException ex) {
System.out.println("Erro " + ex);
}
Quem puder dar uma ajuda fico grato…
