[Homework] Java Basics - Loops - Methods - Classes September 2015
4. **Full House with Jokers // Thanks to EBojilova
5. Angle Unit Converter (Degrees ↔ Radians)
8. Sum Numbers from a Text File
15. ***Straight Flush // TODO
Ето го и моето домашно
4. **Full House with Jokers // Thanks to EBojilova
5. Angle Unit Converter (Degrees ↔ Radians)
8. Sum Numbers from a Text File
15. ***Straight Flush // TODO
Ето го и моето домашно
Колега, имаше ли проблеми да изкараш символите на боите в конзолата правилно? Аз каквото и да правя не се получава.
edit: пфу, намерих го - в настройките на IntelliJ: File -> Settings -> search for "encoding" -> File Encodings -> падащото меню Project Encoding -> UTF-8.
4. **Full House with Jokers
Не ми стана много ясно условието, тъй като има някои повтаряния .
Като се гледа отделната ръка и замяната в нея с джокери не се повтаря.
Има повторение като се гледат всички ръце на местата с джокерите, но мисля, че съм стигнала до това което се иска.
Реших я в два варианта:
-битове: https://github.com/EBojilova/Java/blob/master/3.LoopsMethodsClasses/src/_04FullHouseWithJockers.java
Аз тамън я мъдрех тази задача... Рекурсивния ти начин много ми допада, позволяваш ли да препиша от теб 
Забелязах, че counter-a ти е на грешното място, така не броиш всички комбинации. Направи го глобална променлива и го вкарай във функцията "FindCombinations", която по конвенция на джава трябва да е с малка буква :)
Поправих я, благодаря :)
Не е най-удачната рекурсия, но тази я преписах от SubSums в C# advanced.
Искаше ми се по-добра рекурся, която да замества с * вътре в temporary, но си играх над 2 часа и засега я оставям така.
Здравейте, колеги,
ето и от мен задачи (без изпитните засега):
Problem 1.Symmetric Numbers in Range
(четох много решения, и накрая я направих по различен начин)
Problem 2.Generate 3-Letter Words
Problem 4.** Full House with Jokers
Problem 5.Angle Unit Converter (Degrees ↔ Radians)
(малко по-различно решение)
Problem 6.Random Hands of 5 Cards
Problem 7.Days between Two Dates
(това решение много си го харесвам, защото без да инсталирам допълнителна библиотека получих в общи линии функционалността на C# DateTime parser - няма значение какви разделители ще въведете в датата, няма значение дали ден и/или месец ще имат една или две цифри - парсва всичко което е в day month year format)
Problem 8.Sum Numbers from a Text File
(тук имам !Strings.isNullOrEmpty(lineContent) като в C#, с import com.google.common.base.Strings; (Guava))
8-ма до 11-та задача включително имам много добро решение за затваряне на stream, reader, writer....
Problem 10.* Order of Products
(с методи)
И по принцип форматирането нa output-a ми е различно навсякъде.
(Малко по-различно решение на 12-та задача)
(с custom class Rectangle - много капризно се оказа ползването на допълнителен клас - иска празен контруктор, и да се изнесе всяко инстанцииране на променливи от тип Rectangle като static variables)
Problem 13** – Durts (без клас Rectangle)
(с class Student, и с използване на Java 8 lambda за групиране, average; с TreeMap за сортиране)
Скъпа Катя на задача 14 Exam Score не знам защо си го направила по-толкова сложен начин. Задачата може да се реши много по-лесно без допълнителни класове и дори без lamda изрази (умишлено съм ги избегнал, защото в java не съм ги разучил добре още). Просто трябва да се изполват два Map-а вкарани един в друг (вторият е value на първия), а понеже сортирането и на точките и на студентите е в нормален ред може да просто да се използват TreeMap - ве без lamdi., т.е.:
Map<Integer, Map<String, Double>> scores = new TreeMap<>();
като вътрешните речници си ги правиш също TreeMap.
Може би умишлено търсиш трудни решения, но в случая това ми се струва доста излишно.
Ето ги и целия код.
https://github.com/onefen/Homework_Java_LoopsMethodsClasses/blob/master/src/ExamScore.java
Ето и 15. ***Straight Flush от мен.
Малко по-бавно работи, защото не съм ползвал HashSet, не съм ги разучил още.
Между другото в някои от тестовете, карти са разделени с повече от един space, което си е гаден номер, след като в условието е в единично число. Та трябваше да ползвам "\\W+" за разделител.
Колеги, ето и моето решение на иначе доста семплата зад. 8 (Reading Numbers from a Text File). По-различното тук е използването на някои от новостите в Java 8 - интерфейсът Stream и lambda expressions. Смятам да направя и зад. 9 по този начин. Нищо против горните решения, но защо да инсталирам последната версия на JDK, ако ще ползвам FileReader, BufferedReader etc, които са налични още от JDK 1.1?
Много супер! +1 от мен.
За затварянето на Stream (и всичко друго) обаче, четох че се прави след catch, във finally, за да затвориш И в случай на exception.
@Катя:
благодаря, поправено
Страхотно решение!
И от мен +1
Сподели и другите решения с новостите в Java 8, че нямам много време да ги разучавам, а ми стана интересно.
На 7-ма задача Days Between Two Dates - форматирането на датата, така че да бъде с опция 1 или 2 числа за деня, най-кратко може да стане по този начин - "['d']d-MM-yyyy". Опционалните символи се заграждат с "[]".
Става и само "d-MM-yyyy"
Също така, забелязах, че ако ползвам Date класа, на последния тест ми се губи 1 ден.
Четох в нета и имаше информация да не се ползва този клас, тъй като бил счупен.
По-добре да се ползва LocalDate.
Като се отваря поток към файл, как му се задава пътя, спрямо коя папка - на конкретния проект, на конкретния пакет, на workspace-a или на home директорията на юзера?
Като се отваря поток към файл, как му се задава пътя, спрямо коя папка - на конкретния проект, на конкретния пакет, на workspace-a или на home директорията на юзера?
Здравей, Милене,
на мен всички imput files са ми в папката на проекта дирекктно, викам ги без да подавам път - само давам името на файла, output files също се създават директно в папката на проекта ако подам само име на файл - значи по подразбиране без зададен път отиват там.
https://github.com/KatyaMarincheva/Java/tree/master/Java-Loops-Methods-Classes-HW
Здравей Милене (мисля че с теб бяхме от доброволците по окабеляване на залата за съжаление успях да дойда само веднъж :) ) ето как можеш да получиш path-a в който се намира проекта ти дано ти е полезно: SumNumberFromTextFile
ето и едно интересно (според мен) решение на 7ма задача :)
Здравей, аз също нямах възможност да дойда повторно да окабеляваме, но явно момчетата са се справили и без нас! :) Иначе благодаря за инфото. :)
Кое IDE ползваш, InteliJ или Eclipse?
Току що го намерих и си редактирах предния пост, оказа се че е от настройките от самото IDE - IntelliJ.
На Еклипс конзолата по подразбиране е уникодска, така че хората, които го ползват, няма да имат такива проблеми.