gpt4 book ai didi

Java 列出不同的名称

转载 作者:行者123 更新时间:2023-12-01 12:03:25 25 4
gpt4 key购买 nike

这里我有一些用于扫描文件并将其拆分为项目的代码

代码=

Scanner scanner = new Scanner(new File("file.txt"));

while (scanner.hasNext()) {

String line = scanner.nextLine();
String[] item = line.split(":");

因此 item[0] = team1 item[1]= 主场进球等...

文件.txt =

Chelsea : 1 : Fulham : 1
Leeds : 2 Chelsea : 1
Leeds : 1 : Fulham : 2

上面是我正在阅读的文件。我可以使用什么代码打印出球队名称不重复的记分牌。目标、得分等并不重要,我只想打印列出球队名称而不重复;

切尔西

利兹

富勒姆

最佳答案

使用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

顺便说一句,使用 : 来分割字符串并不是最好的主意。在这种情况下,球队名称可能有前导/尾随空格,因此“Chelsea”和“Chelsea”实际上会被视为不同的名称。相反,请尝试使用此拆分 (\\s*:\\s*),它会再次转换为零个或多个空白字符、冒号以及零个或多个空白字符。

我还认为这是一个错字

Leeds : 2 Chelsea : 1

应该是

Leeds : 2 : Chelsea : 1

关于Java 列出不同的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27847745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com