BG Development


Страници: (2) [1] 2   ( Първото ново мнение ) Reply to this topicStart new topicStart Poll

> Помощ за задача в Java, Задача по задание
AlexanderV
Публикувано на: 04-12-2017, 17:45
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 04.12.17



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

Успях да докарам програмата да ми изкара в конзолата градовете, които съдържат буквата ' о ' ,но не мога да накарам програмата да я търси буквата - 3 пъти в един стринг (Направих опит със фор цикъл, но не беше успешен)

Ще съм благодарен, ако някой ми окаже съдействие icon_smile.gif

П.П - Доста начинаещ съм в програмирането ( моля без негативни коментари )

Прикачен файл ( Брой сваляния: 5 )
Прикачен файл  Task4.java
PMEmail Poster
Top
AlexanderV
Публикувано на: 04-12-2017, 17:51
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 04.12.17



public class Ngradove {


public static void main(String [] args) {
CharSequence cs = "о";
String [] Ngradove = {"Кочериново","МалкоТърново","Приморско","Стамболийски","Търговище","Ямбол ",
"Банкя"
,"Гълъбово"
,"Димитровград"
,"Елин Пелин"
,"Казанлък"
,"Костенец"
,"Ловеч"
,"Монтана"};


for(String a : Ngradove) {
boolean retval = a.contains(cs);
if (retval == true) {

System.out.println(a + " - съдържа буквата " + "(о)" + " : " + retval);

}

}
}
}




опитът със цикъл -



char[] c = Ngradove[i].toCharArray();
int i = 0, j = 0, counter = 0;
for( i = 0; i < Ngradove.length; i++) {

int sz =c.length;
for (i = 0; i <sz; ++i) {
for(j = 0; j < sz; ++j) {
if(c[j] ==c[i]) {
counter++;
PMEmail Poster
Top
Expressing
Публикувано на: 04-12-2017, 20:51
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 20
Регистриран на: 22.02.17



CODE
public class MyClass {
   public static void main(String args[]) {
       String[] Ngradove = {"Кочериново","МалкоТърново","Приморско","Стамболийски","Търговище","Ямбол ", "Банкя", "Гълъбово", "Димитровград"
                               ,"Елин Пелин" ,"Казанлък" ,"Костенец" ,"Ловеч" ,"Монтана", "ВеликОтърнОво"};
                               
       for (int i = 0; i < Ngradove.length; i++) {
           char[] currentTown = Ngradove[i].toCharArray();
           int counter = 0;
           
           for (char c : currentTown) {
               c = Character.toLowerCase(c);
               if (c == 'о') {
                   counter++;
               }
           }
           
           if (counter > 2) {
               System.out.println(currentTown);
           }
           
           counter = 0;
       }
   }
}


На жаба не пиша, но това е най-примитивния начин. Ако нещо не ти е ясно питай.
PMEmail Poster
Top
AlexanderV
Публикувано на: 04-12-2017, 22:15
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 3
Регистриран на: 04.12.17



Кода го разбирам, но още като съм нов и не мога сам да го измисля, а се мъча с някакви си мои размишления.
Благодаря много за помощта icon_smile.gif
PMEmail Poster
Top
Антон Яначков
Публикувано на: 06-12-2017, 10:33
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Активен

Мнения: 168
Регистриран на: 27.07.16



Аз бих използвал регулярен израз за търсене. В обикновен цикъл For обхождаш елементите, а в цикъла слагаш регулярния израз. Регулярните изрази си имат точна логика и в шаблона можа да зададеш точно какво искаш да търси и колко пъти да се повтаря. Така всичко ще стане с 3 реда сорс, но с шаблона трябва да си поиграеш, за да му зададеш точните параметри. С регулярни изрази работят всички езици и това е тежката ракетна артилерия на стринговата обработка. Лично аз всеки път се опитвам да избягвам използването на регулярен израз, защото писането на точен шаблон е заигравка, но когато е нещо по сложно опирам задължително до тях. В твоя случай задачката е проста и може да се реализира само с прости стрингови функции, но ако искаш да е професионално направи я с регулярен израз. А за това как се пишат регулярни изрази в мрежата има много примери включително и на български. В момента нямам свободно време, за да ти напиша примерче, така че те оставям на ниво идея, дерзай.
PMEmail PosterUsers Website
Top
bubo
Публикувано на: 06-12-2017, 12:16
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 41
Регистриран на: 27.12.09



Човека е още на цикли, ти го прати регулярни изрази да гледа. Рано му е според мен icon_smile.gif
PMEmail Poster
Top
relax4o
Публикувано на: 06-12-2017, 16:22
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1312
Регистриран на: 04.04.07



QUOTE (Антон Яначков @ 06-12-2017, 10:33)
Аз бих използвал регулярен израз за търсене. В обикновен цикъл For обхождаш елементите, а в цикъла слагаш регулярния израз. Регулярните изрази си имат точна логика и в шаблона можа да зададеш точно какво искаш да търси и колко пъти да се повтаря. Така всичко ще стане с 3 реда сорс, но с шаблона трябва да си поиграеш, за да му зададеш точните параметри. С регулярни изрази работят всички езици и това е тежката ракетна артилерия на стринговата обработка. Лично аз всеки път се опитвам да избягвам използването на регулярен израз, защото писането на точен шаблон е заигравка, но когато е нещо по сложно опирам задължително до тях. В твоя случай задачката е проста и може да се реализира само с прости стрингови функции, но ако искаш да е професионално направи я с регулярен израз. А за това как се пишат регулярни изрази в мрежата има много примери включително и на български. В момента нямам свободно време, за да ти напиша примерче, така че те оставям на ниво идея, дерзай.

За да е професионално да пишел регулярни изрази? WTF? Имаш ли си и идея, че регуларните изрази са страшно бавни и тежки процеси? Не давай съвети, които ти самия не разбираш.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
Антон Яначков
Публикувано на: 06-12-2017, 17:14
Quote Post



Име: Антон Яначков
Група: Потребител
Ранг: Активен

Мнения: 168
Регистриран на: 27.07.16



QUOTE (relax4o @ 06-12-2017, 16:22)

За да е професионално да пишел регулярни изрази? WTF? Имаш ли си и идея, че регуларните изрази са страшно бавни и тежки процеси? Не давай съвети, които ти самия не разбираш.

Аз ги ползвам регулярните изрази за огромни стрингови пакети при това в таймери настроени на милисекунди. До този момент не съм намерил по-бърз и сигурен начин за стрингови промени.
Пиша само и единствено от личен опит. В предвид на това, че регулярните изрази се използват десетилетия, чудя се как изобщо са работели на старите машини. И друго, ако са отживелица, защо всеки език работи безпроблемно с тях и защо Майкрософт не се отказва от тях. Най-простото търсене примерно в Word e с регулярен израз. Напиши шаблонче в търсачката и гледай какво ще направи. Истината е, че те са много, ама много мощен инструмент, но написването на верния шаблон е трудна работа. А онези, които не се справят с тази задача си намират подходящо обяснение. Обикновено излизат с номера, че са бавни. Простата функцията Replace е частен случай на най-прост шаблон. Пробвай я в текстов документ от няколко мегабайта и виж дали ще успееш да мигнеш преди тя да е свършила. А после разгледай отново схващанията си за регулярните изрази. Ако все още не си променил мнението си, значи от този дебат няма никакъв смисъл. Преди 15 години лично аз твърдях, че няма такава задача, която да налага използване на регулярен израз, защото всичко може да се реши само със стрингови функции. В последствие практиката ми показа, че сериозно съм грешал. По време на спора отсрещното лице действително не можа да измисли задача, която да не може да се опише със стрингови функции, но по-късно практиката ме срещна с много подобни случай. Дори последната програма за гласово програмиране на много места просто се налага използване регулярни изрази. Като казвам налага се имам предвид, че друго не помага.
PMEmail PosterUsers Website
Top
relax4o
Публикувано на: 06-12-2017, 18:46
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1312
Регистриран на: 04.04.07



Ама виж сега, ти променяш обстоятелствата. Регулярните изрази си имат определни случаи, в които да се използват, но за тази проста задача да използва регулярни изрази е просто жалко.
1. Времето, което ще му отнеме да напише шаблона качествено и вярно, ще е повече отколкото да използваш "простите" решения. Това в случая включва и да научи как работят.
2. Шанса да има ядове с кирилицата е голям и докато намери решение как да го оправи, ще си е намерил друго решение.
3. Регулярните изрази се използват главно, когато трябва да мачваш сравнително сложни изрази, които с проста логика да го направиш ще стане мазало.


--------------------
Бисери :D

QUOTE (oveRLuckEd)
Ползваш някоя нова версия на PHP, която е вече ооп ориентирана и заради това ти я изкарва тази грешка.


QUOTE (nbacool2)
Щом няма input полета, значи няма откъде да се направи SQL инжекция Very Happy
PM
Top
FidelDahan
Публикувано на: 06-12-2017, 22:38
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 2220
Регистриран на: 12.06.08



QUOTE (Антон Яначков @ 06-12-2017, 10:33)
Аз бих използвал регулярен израз за търсене. В обикновен цикъл For обхождаш елементите, а в цикъла слагаш регулярния израз. Регулярните изрази си имат точна логика и в шаблона можа да зададеш точно какво искаш да търси и колко пъти да се повтаря.

Сигурен ли си, че си разбрал условието правилно?

QUOTE
всички населени места, в чиито имена буквата "о" или "О" се среща повече от 3 пъти;


Това не може да се реши с филтър базиран на регулярни изрази. Примерни думи:

Оряхово (да)
Тополовград (да)
Одрин (не)
Огорище (не)

Тъй-като регулярните изрази са context-free. Трябва ти нещо, което е context-sensitive.
PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Страници: (2) [1] 2  Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0