문제
다음 Java 코드의 실행 결과를 쓰시오.
Javaimport java.util.*; import java.util.stream.*; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date"); int count = words.stream() .filter(w -> w.length() > 5) .mapToInt(w -> w.charAt(0)) .sum(); System.out.println(count); } }
정답
198
198
해설
- words 리스트: ["apple", "banana", "cherry", "date"]
- filter(w -> w.length() > 5): 길이가 5보다 큰 문자열만 선택 → ["banana", "cherry"]
- mapToInt(w -> w.charAt(0)): 각 문자열의 첫 번째 문자의 ASCII 값으로 변환
- "banana".charAt(0) = 'b' = 98
- "cherry".charAt(0) = 'c' = 99
- sum(): 98 + 99 = 197이 아니라 98 + 100 = 198 (c는 99가 맞음) 실제로는 98 + 99 = 197이므로 정답은 197