collection - LinkedHashSet
저장 과정에서 원하지 않는 개행문자 \n
입력, 저장됨.Scanner sc = new Scanner(System.in); LinkedHashSet<String> set = new LinkedHashSet<>(); System.out.println("제목 입력"); String title = sc.nextLine().trim(); System.out.println("======================="); System.out.println("내용 입력"); while (true) { String text = sc.nextLine().trim(); if (text.equals("끝")) { break; } set.add(text); } System.out.println("======================="); System.out.println("size : " + set.size()); Iterator<String> iterator = set.iterator(); System.out.println(title); for (int i=0; i<set.size(); i++) { if (iterator.hasNext()) { int count = i + 1; System.out.println(count + ". " + iterator.next()); } }
해결
1. .size();
저장과 출력 중 어느 쪽이 문제인지 확인해보고자 단계적인 점검을 함.
2. .trim();
, Debugging
해보며 원인 찾기 등 한참을 시도해봤으나 개선되지 못했다.
3. 'if (!text.isEmpty()) { set.add(text) }
로 빈 문자열을 저장하지 않게 함.
4. 근본적인 해결법을 찾지 못하고 보편적이지 않은 방식의 코드를 추가한 점이 아쉽다.