Załóżmy, że mam ciąg znaków, taki jak string= "aasmflathesorcerersnstonedksaottersapldrrysaahf"
. Jeśli jeszcze tego nie zauważyłeś, możesz znaleźć tam frazę "harry potter and the sorcerers stone"
(minus spację).Sprawdź, czy ciąg zawiera wszystkie znaki innego ciągu w Ruby
Muszę sprawdzić, czy string
zawiera wszystkie elementy ciągu.
string.include? ("sorcerer") #=> true
string.include? ("harrypotterandtheasorcerersstone") #=> false, even though it contains all the letters to spell harrypotterandthesorcerersstone
Opcja "Uwzględnij" nie działa w przypadku tasowania ciągów.
Jak mogę sprawdzić, czy ciąg znaków zawiera wszystkie elementy innego ciągu?
Edytuj, aby wyjaśnić dwa punkty. 1. Aby "ciąg" zawierał "czarnoksiężnika", czy "ciąg" musi zawierać co najmniej trzy "r"? 2. Dlaczego twój drugi przykład zwraca 'false'? –
@CarySwoveland Wydaje mi się, że pokazuje, jak działa "włącz", a "fałszywy" jest niepożądany. Myślę, że pytanie brzmi: jak zapewnić, że oba przypadki zwracają "prawda". – meagar
PS: Jeśli zamierzasz używać nawiasów z wywołaniami metod (i często są one konieczne), uważaj ze spacjami: 'm (x, y)' jest w porządku, ale 'm (x, y)' jest błędem składni. Twoje 'string.include? ("czarnoksiężnik") "działa dobrze, ponieważ istnieje tylko jeden argument, więc twoje grupowanie-nawiasy nadal tworzą poprawne wyrażenie. –