(Я скопировал весь код, но вы просто должны просмотреть строки 28–45). Мы должны ввести фамилию и имя, чтобы получить количество голосов, которое набрал реальный человек.Я написал код, и если я ввожу на входе первую строку, фамилия имя, он работает хорошо (я получаю 19, что на правильное число), но каждый раз, когда я пытаюсь написать другое имя в поле ввода, это неработа.
Внутри файла есть 5 cloumns, (1-й и 5-й не нужны в этой задаче)у нас есть имена.
kepviselok.txt
ожидаемый и фактический результат
package erettsegi2;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
var lista = Files.readAllLines(Paths.get("kepviselok.txt"));
var listak = new ArrayList<Lista>();
var input = new Scanner(System.in);
for (var valaszt : lista) {
String[] split = valaszt.split(" ");
var kerSzam = Integer.parseInt(split[0]);
var szavazottSzam = Integer.parseInt(split[1]);
var nev = split[2] + " " + split[3];
var part = split[4].equals("-") ? "Independent " : split[4];
listak.add(new Lista(kerSzam, szavazottSzam, nev, part));
}
System.out.println("2.");
System.out.println("Number of Representatives on Election: " + listak.size());
System.out.println("3.\nPlease write a surname!");
var surname = input.nextLine();
System.out.println("Please write a first name!");
var firstname = input.nextLine();
for (var i = 0; i < listak.size();i++) {
var actualCandidate = listak.get(i);
if (actualCandidate.name.equals(surname + " " + firstname)) {
System.out.println(actualCandidate.name);
System.out.println("Number of votes " + actualCandidate.votes);
break;
} else {
System.out.println("No candidate with this name");
break;
}
}
}
static class Lista {
int sorszam;
int votes;
String name;
String part;
public Lista(int sorszam, int szavazatokSzama, String nev, String part) {
this.sorszam = sorszam;
this.votes = szavazatokSzama;
this.name = nev;
this.part = part;
}
}
}