preloder
دستگرمی

دستگرمی سوم

دستگرمی این هفته:

خروجی کد جاوای زیر چیست؟

به نظر شما، خروجی کد بالا کدام گزینه است؟

  • spring summer (50%, 4 رای)
  • summer (38%, 3 رای)
  • sprint (13%, 1 رای)
  • winter (0%, 0 رای)
  • winter summer (0%, 0 رای)

مجموع رای ها: 8

Loading ... Loading ...

پاسخ:

پاسخ صحیح: spring summer

برای رسیدن به پاسخ صحیح، متد main را خط به خط بررسی می‌کنیم:

خط ۳: چهار تاریخ ورودی، در قالب String در آرایه dates ریخته می‎شوند.

خط ۴: ابتدا یک stream از dates ساخته می‎شود و

خط ۵: آیتم‌های stream بر اساس عبارت منظمِ داده‎شده فیلتر می‎شوند. دقت کنید که طبق این عبارت منظم:

  • ماه، فقط باید شامل حروف کوچک و بزرگ انگلیسی باشد. بنابراین ۹۸/۰۴/۲۳ از stream حذف می‎شود.
  • سال فقط باید شامل دو یا چهار عدد باشد. بنابراین

۱۲۳/AGU/1

نیز از stream حذف می‌شود.

بنابراین آیتم‎های زیر از این فیلتر عبور می‎کنند:

۱۲۳/AUG/1, 1398/FeB/01

خط ۶: آیتم‎های فیلترشده، به یکی از آیتم‎هایMonth  Enum نگاشت می‎شوند.

  • متد استاتیک get، یک تاریخ در ورودی می‎گیرد و Enum مرتبط با ماهِ آن تاریخ را بر می‎گرداند.
  • عبارت allOf(Month.class)، در واقع یک Set شامل آیتم‎های موجود در Enum ورودی را به ما می‌دهد که می‌شود از روی آن stream ساخته و کارهای مختلفی کرد.

آیتم‎های موجود در stream پس از نگاشت:

JUN, FEB

خط ۷: enumها بر اساس شماره ماه‎شان به ترتیب نزولی مرتب می‎شوند. اجزای Stream عبارت‎اند از:

JUN, FEB

خط ۸: اجزای stream به لیست months ریخته می‎شوند.

خط ۹: month = JUN می‌شود.

خط ۱۰: عبارت switch (JUN) ارزیابی شده و اجرای برنامه به خط ۱۸ می‎رود.

خط ۱۹: عبارت spring در کنسول چاپ می‎شود. سپس بخش default اجرا می‎شود.

خط ۲۰: عبارت summer در کنسول چاپ می‎شود.

.

.

.

با ما همراه باشید

آدرس کانال تلگرام: JavaCupIR@

آدرس اکانت توییتر: JavaCupIR@

آدرس صفحه اینستاگرام: javacup.ir

آدرس گروه لینکدین: Iranian Java Developers

[تعداد: 1    میانگین: 5/5]
برچسب ها
نمایش بیشتر

نوشته های مشابه

‫۲ نظرها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

همچنین ببینید

بستن
دکمه بازگشت به بالا