2015-01-08 2 views
0
여기

내가자바 목록 독특한 이름

코드 파일을 검색하고 항목으로 분할을위한 몇 가지 코드를 가지고 = 그러므로 항목 [0] = team1 항목

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

while (scanner.hasNext()) { 

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

..

File.txt를 =

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

위 파일 임 읽기입니다. 팀 이름이 중복되지 않은 스코어 보드를 인쇄하는 데 사용할 수있는 코드는 무엇입니까? 목표, 포인트 등은 중요하지 않습니다. 단지 인쇄물에 복제하지 않고 팀 이름을 나열하고 싶습니다.

첼시

리즈

풀럼

답변

1

사용 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*)을 사용하여 분할을 시도하십시오. 0 개 이상의 공백 문자, 콜론 및 0 개 이상의 공백 문자로 다시 변환됩니다.

또한 나는이 오타

Leeds : 2 Chelsea : 1 

가정 그것은해야

Leeds : 2 : Chelsea : 1