Форум

Data.BG Форуми: Задача за домашна работа Спешно!! - Data.BG Форуми

Прехвърляне към съдържание

Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

Задача за домашна работа Спешно!!

#1
Потребителят е неактивен   stockholmsyndrome 

  • Група: Потребители
  • Мнения: 3
  • Регистриран: 04-December 15
  • Репутация: 0
  • Пол:Мъж
  • Град:Пловдив
Здравейте,

Започнах да уча софтуерни технологии преди месец. Сега ни дадоха задачи, които общо взето няма нищо общо с упр.(доста по-сложни са от това, което преподаваха в упр.)

Условие на заадачата:

Задача 4. Елементите на масив са имена на населени места, започващи с главна буква. Да се съставят ППГ за:
а) въвеждане на елементите на масива (не повече от 50).
ж) извеждане на екрана на всички населени места, в чиито имена буквата "е" или "Е" се среща 2, 3 или 4 пъти, а буквата "р" не се среща нито веднъж;



Подусловие а) почти не го разбрах... При ж) стигнах до:

public class Проект4ж {
static String[] населени = { "Еелена", "Асееновград", "Долно Калугерово", "Китеен", "Калофеер"};

public static void main(String[] args) {
for (int i=0; i<населени.length; i++)
if(населени[i] !="р" && населени[i].equalsIgnoreCase("е"))


System.out.println(населени[i]);
}

Знам, че equalsIgnoreCase е за сравнение на String със String....
За съжаление не мога да разбера, как да напиша условието, за да може конзолата да изкара градовете, в които се съдържа е поне 2(3 или 4) пъти и да няма "р". Това даже не са ни показвали по време на упр.

Мнението беше редактирано от stockholmsyndrome: 04.12.15 - 00:40

0

#2
Потребителят е неактивен   brigadier 

  • Група: Потребители
  • Мнения: 1101
  • Регистриран: 25-December 05
  • Репутация: 247
Първото подусловие значи да го попълниш с нещо, иначе ще бъде null.

После отваряш апидока - https://docs.oracle....ase/8/docs/api/ , отиваш на String и гледаш подред какви методи има.

Единично присъствие или липса може да се намери с contains() . За многократното един от начините е да вкараш всеки стринг в отделен цикъл, обхождаш го с charAt() и колкото пъти намери нещо, увеличава временен брояч.
0

#3
Потребителят е неактивен   pix3l 

  • Група: Потребители
  • Мнения: 717
  • Регистриран: 31-August 09
  • Репутация: 217
Някой казвал ли ти е, че ползването на кирилица извън пределите на някой String е много лоша практика?
Нито крачка назад - Зад нас е България!
0

#4
Потребителят е неактивен   stockholmsyndrome 

  • Група: Потребители
  • Мнения: 3
  • Регистриран: 04-December 15
  • Репутация: 0
  • Пол:Мъж
  • Град:Пловдив

Преглед на мнениеbrigadier, на 04.12.15 - 12:07, каза:

Първото подусловие значи да го попълниш с нещо, иначе ще бъде null.

После отваряш апидока - https://docs.oracle....ase/8/docs/api/ , отиваш на String и гледаш подред какви методи има.

Единично присъствие или липса може да се намери с contains() . За многократното един от начините е да вкараш всеки стринг в отделен цикъл, обхождаш го с charAt() и колкото пъти намери нещо, увеличава временен брояч.



Благодаря, стигнах до този вид:

static String[] towns = { "Еелена", "Асееновград", "Долно Калугерово", "Китеен", "Калофеер"};


public static void main(String[] args) {
for (int i=0; i<towns[i].length; i++){
if(!towns[i].contains("p")){
int e=0;
for (int j=0; j<towns[i].length; j++){
if(towns[i].charAt(j) == 'e' || towns[i].charAt(j) == 'E'){
e++;
}
}
if(e>1 && e<5){
System.out.println(towns[i]);
}
}
}

Казва ми, че не може да намери variable length.
0

#5
Потребителят е неактивен   stockholmsyndrome 

  • Група: Потребители
  • Мнения: 3
  • Регистриран: 04-December 15
  • Репутация: 0
  • Пол:Мъж
  • Град:Пловдив

Преглед на мнениеpix3l, на 04.12.15 - 16:33, каза:

Някой казвал ли ти е, че ползването на кирилица извън пределите на някой String е много лоша практика?


Да, знам, че не е добре да използвам кирилица за име на клас/проект...
0

#6
Потребителят е неактивен   brigadier 

  • Група: Потребители
  • Мнения: 1101
  • Регистриран: 25-December 05
  • Репутация: 247

Преглед на мнениеstockholmsyndrome, на 04.12.15 - 21:57, каза:

Благодаря, стигнах до този вид:

for (int i=0; i<towns[i].length; i++){


Казва ми, че не може да намери variable length.


Това няма да проработи изобщо , понеже вторият параметър за всеки отделен ред е с различна дължина. По - добре извади втория чек в отделен метод:

if(!towns[i].contains("p") && checkChars("e" , towns[i]) >= 2 && checkChars("e" , towns[i]) <= 4)

Правиш втори метод checkChars или както си го кръстиш, който приема 2 стринга - буквата, която се търси и текущия ред от array, и връща число колкото пъти се съдържа буквата.
В началото на метода слагаш един инт за брояч = 0 и след това цикъл да обхожда буквите на подадения стринг със charAt() и на всяко намиране качва брояча с 1 , а накрая връща брояча на повикващия метод

То може и да го има някъде наготово в някоя колекция като го превърти в друг тип и го сортира, но не ми е попадало.
0

Споделете тази тема чрез:


Страница 1 от 1
  • Вие не можете да започнете нова тема
  • Вие не може да отговаряте на тази тема

1 потребители четат тази тема
0 регистрирани потребители, 1 гости и 0 анонимни потребители


Data.BG e форум за дискусии. Data.BG не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Data.BG.

Close  Member Login