Софтуерно Инженерство
Loading...
+ Нов въпрос
bety_1988 avatar bety_1988 49 Точки

[Java Syntax] - GetFirstOddOrEvenElements

Зравейте колеги! Моля Ви за мнение по една от задачите от домашното Java Syntax. Това е кодът ми: http://pastebin.com/AipicDr4

Въпросът ми е дали съм структурирала правилно и четимо метода - като резултат получавам верен отговор, но реших сама да прочета предварително колкото може от материала и да реша някоя и друга задача. Моля ви да дадете мнение и ако нещо не е както трябва да се коригирам. Предварително благодаря!

Тагове:
0
Java Advanced
deyan.zhekov avatar deyan.zhekov 159 Точки

Здравей,

няколко неща, които можеш да промениш:

if(extractNumber[2].equals("odd")) { - по-добре да направиш "odd".equals(extractNumber[2]) - по този начин избягваш NPE ако extractNumber[2] е null

- if(extractNumber[2].equals("odd")) { и if (numbers[i] % 2 != 0) { няма причина да са вложени - по-добре ги вкарай в един if и ги обедини с &&

if (extractNumber[2].equals("even")) { е обратен случай на първия if - няма причина да се проверява отделно - по-добре го направи с else if

- odd.length() >= n тук = е излишно - ако имаш дължина 5 и искаш да изпечаташ 5 символа ще направиш substr(0, 5) което е на практика целия низ тъй като втория параметър на substr е изключващ - ще вземе от 0 до 4 включително

- odd.substring(0, n); и  return odd.toString(); могат да се обединят в един ред return odd.substring(0, n).toString();

- форматирането на кода малко ти бяга - можеш да си настроиш auto format да се прави на save

Надявам се да съм бил полезен.

 

4
bety_1988 avatar bety_1988 49 Точки

Супер! Много благодаря! Последно да попитам във връзка с форматирането на кода - има ли клавишна комбинация /като Ctrl +K +D в С#/? Ще пробвам това, което предлагаш :)

0
aanguelov avatar aanguelov 219 Точки

Тази тема е полезна за настройка и шорткъти в InteliJ IDEA. 

Браво за инициативата да започнеш да се подготвяш предварително за курсовете от Фундаменталс.

1
bety_1988 avatar bety_1988 49 Точки

Мерси! Сега ще отворя и ще разгледам. Извинявам се, че вече има такава тема и не съм потърсила достатъчно. :)

0
26/02/2016 15:18:12
kaloyannikov avatar kaloyannikov 529 Точки

Реших да не пускам нова тема при положение , че имам проблем на тази задача .

http://pastebin.com/1cNAvCrn

Не разбирам защо не ми влиза в if-овете и дефакто не прави нищо ?

0
29/02/2016 15:02:38
deyan.zhekov avatar deyan.zhekov 159 Точки

Здравей,

сравнението на обекти в Java става посредством .equals методите им - == сравнява референции, докато equals сравнява стойностите в обекта (в случай, че е Override-нат по този начин). String е обект и е коректно да направиш:

"odd".equals(commandSplitted[2])

вместо:

commandSplitted[2]=="odd"

Сравнението с == ще сработи само в частен случай, в който двете референции сочат към един и същ обект, което за String може да се получи освен след присвояване и след статично задаване от типа String example = "example". Последното сработва понеже JVM-а пази string обекти и насочва референцията към вече съществуващи такива (не важи за new String(), който изрично създава нов обект). Това е възможно поради факта, че string е immutable и няма риск от промяна на обекта, а от друга страна се прави намаляване на използваната памет поради преизползването на обектите.

1