• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak sprawdzić w stringu

Object Storage Arubacloud
0 głosów
774 wizyt
pytanie zadane 4 grudnia 2018 w JavaScript przez revizor451 Obywatel (1,930 p.)
Witam.

Jak sprawdzic, czy w stringu są takie same dwa wyrazy.

Np Jezeli jest 'MarchewkaMarchewka' to wywali false

A jeżeli jest 'Marchewka' to wywali true

3 odpowiedzi

+1 głos
odpowiedź 4 grudnia 2018 przez X3h Dyskutant (9,540 p.)
wybrane 7 grudnia 2018 przez revizor451
 
Najlepsza
// definicja funkcji do sprawdzania czy istnieje 
// wyraz który wystąpił co najmniej dwa razy
const anyRepeatedWord = (str) => {
	// wyraz zaczyna się z dużej litery i posiada małe litery
	const regex = /[A-Z][a-z]+/gm;// stworzenie regexa
	let m;// stworzenie zmiennej do następnych matchów
	const set = new Set();// utworzenie seta zawierającego wyrazy
	// dopóki istnieje kolejny match
	while((m = regex.exec(str)) !== null){
		// jeśli wyraz jeszcze nie wystąpił
		if(!set.has(m[0])){
			set.add(m[0]);// zapisz wyraz do seta
		}
		// jeśli wyraz już wystąpił
		else{
			return true;// zwróć prawdę
		}
	}
	return false;// zwróć fałsz
}
anyRepeatedWord(`MarchewkaMarchewkaGweka Foo BarFoo`);// true
anyRepeatedWord(`Marchewka`);// false
anyRepeatedWord(`Marchewka a`);// false

 

0 głosów
odpowiedź 4 grudnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Podaj więcej szczegółów?

Dałeś przykład wyrazów połączonych, a co np. z podwójnymi literami jak "ii"? Liczymy za dwa? Jak rozumiesz wyraz, musisz to dokładnie zdefiniować. I jak traktujesz np. "marchewka i marchewka" - w tym stringu są dwa takie same wyrazy czyli false? I jak traktować "marchewka" i "Marchewka", takie same czy różne bo mają różne punkty kodowe?

Od tego zależy rozwiązanie problemu. Najlepiej daj nam gotowy zestaw przypadków, tak jakbyś chciał napisać po prostu unit testy do tej funkcji na true i false, albo w ogóle najlepiej pokaż asercje jakie chcesz robić i do tego dopiszemy body funkcji, tak najlepiej podchodzić do tego typu problemów.
–1 głos
odpowiedź 4 grudnia 2018 przez k.wichura Pasjonat (19,870 p.)

const stringFalse = "xmarchewkamarchewka";
const stringFalse2 = "marchewkamarchewka";
const stringTrue = "marchewka";

function getSplittedString(string) {
  const newstringreplaced = string.replace(/marchewka/gi, ",marchewka");
  return  newstringreplaced.split(",");
}

function countWords(string) {
  let counter = 0;
  string.forEach(word => {
    if(word ==='marchewka') {
      counter ++
    }
  })
  return counter;
}


function getResult(string) {
const splittedString = getSplittedString(string);
const counter = countWords(splittedString)
counter === 1 ? console.log(true) : console.log(false);
}

getResult(stringFalse2)
getResult(stringFalse)
getResult(stringTrue)

Podobne pytania

–1 głos
1 odpowiedź 642 wizyt
pytanie zadane 4 lutego 2019 w C i C++ przez XavRock Obywatel (1,390 p.)
0 głosów
3 odpowiedzi 4,058 wizyt
0 głosów
4 odpowiedzi 5,532 wizyt
pytanie zadane 11 marca 2018 w C i C++ przez niezalogowany

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...