这里我有一些扫描文件并将其拆分为项目的代码
代码=
Scanner scanner = new Scanner(new File("file.txt"));
while (scanner.hasNext()) {
String line = scanner.nextLine();
String[] item = line.split(":");
因此item [0] = team1 item [1] = homegoals等......
File.txt =
Chelsea : 1 : Fulham : 1
Leeds : 2 Chelsea : 1
Leeds : 1 : Fulham : 2
以上是我正在阅读的文件。我可以用什么代码打印出团队名称没有重复的记分牌。目标,积分等并不重要我只想在打印中列出团队名称而不重复;
切尔西
利兹
富勒姆
答案 0 :(得分:1)
使用Set
存储团队名称。如果您尝试多次向Set添加一些值,它将只添加一次,因此您将没有重复项:
Set<String> teamNames = new HashSet<>();
while (scanner.hasNextLine()) {
String[] parts = scanner.nextLine().split("\\s*:\\s*");
teamNames.add(parts[0]);
teamNames.add(parts[2]);
}
for (String teamName : teamNames) {
System.out.println(teamName);
}
输出:
Fulham
Leeds
Chelsea
顺便说一句,使用:
分割字符串并不是最好的主意。在这种情况下,团队名称可能具有前导/尾随空格,因此&#34;切尔西&#34;和&#34;切尔西&#34;实际上会被认为是不同的名字。而是尝试使用此(\\s*:\\s*
)进行拆分,这将转换为零个或多个空白字符,冒号和零个或多个空格字符。
另外我认为这是一个错字
Leeds : 2 Chelsea : 1
它应该是
Leeds : 2 : Chelsea : 1