java - 复杂循环 For - 尝试序列行
问题描述
我正在尝试制作一个读取文本文件(内容例如:CRU、AME、3、2、3、0 和更多 n 行)的程序(冠军球队的分类)。在阅读了球队在锦标赛中的比赛(例如:CRU)后,在屏幕上打印:
Equipe: CRU - NumJogos: 8 - Pts Ganhos: 14 - Pts Perdidos: 6 Num.Vits: 4 NumEmps: 2 NumDerts: 2
对于所有冠军球队。
上面的例子我已经要打印了,但是我不能让它按顺序打印其他团队的行。在尝试了 For 或 While 的不同方式后,什么可以帮助我实现?
我的代码:
public class CampMain {
public static void main(String[] args) {
String path = "F:\\WORKSPACES\\ws-sds2\\Campeonato\\regJogos2.txt";
List<Jogos> list = new ArrayList<Jogos>();
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
String line = br.readLine(); // le a primeira linha
line = br.readLine();
while (line != null) { // para pegar os dados quebrados e posicioná-lo no List
String[] vect = line.split(",");
String equipeMandante = vect[0];
String equipeVisitante = vect[1];
int numGolsMandante = Integer.parseInt(vect[2]);
int numGolsVisitante = Integer.parseInt(vect[3]);
int numPontosMand = Integer.parseInt(vect[4]);
int numPontosVis = Integer.parseInt(vect[5]);
Jogos jg = new Jogos(equipeMandante, equipeVisitante, numGolsMandante, numGolsVisitante, numPontosMand, numPontosVis);
list.add(jg);
line = br.readLine();
}
String[] times = { "CRU", "CAM", "AME", "POU", "PAT", "COI", "BOA", "ATH", "URT", "TOM", "CAL", "UBE" };
String mandante = "", visitante = "", equipe = "";
int pontosEqMan = 0, pontosEqVis = 0;
int totalPtsEquipe = 0, numJogos = 0, numVitoriaVis = 0, numVitoriaMand = 0,
numEmpateEq = 0, numVitoria = 0, numDerrotas = 0;
equipe = "";
int eqsize = 0;
numJogos++;
for (int x = 0; x < list.size(); x++) {
equipe = "CRU";
mandante = list.get(x).getEquipeMandante();
visitante = list.get(x).getEquipeVisitante();
eqsize++;
if (mandante.equals(equipe) || visitante.equals(equipe)) {
if (visitante.equals(equipe) && (list.get(x).getNumGolsVisitante() > list.get(x).getNumGolsMandante())) {
pontosEqVis += list.get(x).getNumPontosVis();
numVitoriaVis++;
}
if (mandante.equals(equipe) && (list.get(x).getNumGolsMandante() > list.get(x).getNumGolsVisitante())) {
pontosEqMan += list.get(x).getNumPontosMand();
numVitoriaMand++;
}
if ((mandante.equals(equipe) || visitante.equals(equipe))
&& (list.get(x).getNumGolsMandante() == list.get(x).getNumGolsVisitante())) {
numEmpateEq++;
pontosEqMan += 1;
}
}
}
numJogos = eqsize / 6;
numVitoria = numVitoriaVis + numVitoriaMand;
numDerrotas = numJogos - (numVitoria + numEmpateEq);
totalPtsEquipe = pontosEqVis + pontosEqMan;
System.out.println("Equipe: " + equipe + " - Numero de Jogos: " + numJogos + " - Pontos Ganhos: "
+ totalPtsEquipe + " - Pontos Perdidos: " + (totalPtsEquipe - eqsize / 6) + " Num.Vitorias: "
+ numVitoria + " NumEmpates: " + numEmpateEq + " NumDerrotas: " + numDerrotas);
} catch (IOException e) {
System.out.println("Error: " + e.getMessage());
}
}
}
打印:
Equipe: CRU - Numero de Jogos: 8 - Pontos Ganhos: 14 - Pontos Perdidos: 6 Numero de Vitorias: 4 Numero de Empates: 2 Numero de derrotas: 2
解决方案
推荐阅读
- r - R中是否有内置函数来检查变量类型是否保留?
- linux - Yocto Image 中的字体大小和图标非常小
- java - 尝试在一个活动中写一些东西并在下一个活动中阅读它
- html - td 内的图像是 td 的高度
- ssl - 带有 SSL 的 Kafka - 写入主题 - 授权错误
- ios - 从 JSON 响应中解析两个不同对象的数组
- excel - 提取多个表达式
- python - Flask SERVER_NAME 设置最佳实践
- postgresql - Artemis ActiveMQ 无法连接到 Postgres
- python - 使用 tweepy 从 Twitter 获取用户 ID 时出错?