Wyszukiwanie w łańcuchach znaków
Część sekcji Logika i przepływ programu ścieżki GDScript w Coddy. Lekcja 2 z 78.
Operator in informuje, czy tekst występuje w ciągu znaków. Gdy potrzebujesz czegoś więcej niż odpowiedzi tak lub nie, ciągi znaków mają metody wyszukiwania:
contains(text)zwracatrue, jeśli tekst występuje w dowolnym miejscu, podobnie jakinbegins_with(text)iends_with(text)sprawdzają tylko początek lub koniecfind(text)zwraca indeks pierwszego wystąpienia tekstu lub-1, jeśli tekst nie występujerfind(text)zwraca indeks ostatniego wystąpieniacount(text)zwraca liczbę wystąpień tekstu
var email := "alice@coddy.tech"
print(email.begins_with("alice"))
print(email.ends_with(".tech"))
print(email.find("@"))
print(email.find("x"))
print(email.count("c"))true
true
5
-1
3find() przyjmuje opcjonalny drugi argument: indeks, od którego rozpoczyna się wyszukiwanie. Użyj go, aby znaleźć następne wystąpienie po tym, które zostało już znalezione:
var text := "one fish, two fish"
var first := text.find("fish")
print(first)
print(text.find("fish", first + 1))4
14Te metody rozróżniają wielkość liter: "Hello".contains("hello") to false. Najpierw przekonwertuj ciąg znaków za pomocą to_lower() albo użyj wersji, które nie rozróżniają wielkości liter: findn(), containsn() i countn().
Wyzwanie
ŁatwyProgram wczytuje adres e-mail do zmiennej email. Sprawdź, czy spełnia wszystkie poniższe zasady:
- Zawiera dokładnie jeden znak
@ - Nie zaczyna się od
@ - Nie zawiera spacji
- Kończy się na
.com,.orglub.tech, niezależnie od użycia wielkich i małych liter
Wypisz valid, gdy spełnione są wszystkie zasady, w przeciwnym razie invalid. Dla wejścia alice@CODDY.TECH wynikiem jest:
validSpróbuj swoich sił
extends Node
func _ready():
var email := OS.read_string_from_stdin()
# Wypisz valid lub invalid
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Łańcuchy znaków — zagadnienia zaawansowane
Metody łańcuchów znakówWyszukiwanie w łańcuchach znakówZastępowanie i przycinanieDzielenie i łączeniePodsumowanie — sprawdzanie nazwy użytkownika4Słowniki, część 2
Zagnieżdżone słownikiTablice słownikówŁączenie słownikówKopiowanie słownikówPodsumowanie – licznik częstotliwości7Typy wyliczeniowe
Czym jest typ wyliczeniowy?Definiowanie typu wyliczeniowegoWartości typu wyliczeniowegoTypy wyliczeniowe w matchPowtórka – sygnalizacja świetlna10Zaawansowane funkcje
Zwracanie wielu wartościFunkcje lambda — część 1Funkcje lambda — część 2Powtórka — sortowanie za pomocą lambdaFunkcje rekurencyjne — część 1Funkcje rekurencyjne — część 2Powtórka — sumowanie zagnieżdżonej tablicy13System zarządzania zapasami
Omówienie projektuDodawanie produktu2Zaawansowane podejmowanie decyzji
Dopasowanie ze zmiennymiStrażnicy dopasowaniaWzorce tablicWzorce słownikówSprawdzanie przynależnościPowtórka — parser poleceń5Aplikacja książki kontaktów
Wyświetlanie menuDodawanie kontaktu8Menedżer danych studentów
Przegląd projektuDodaj studenta3Tablice wielowymiarowe
Podstawy tablic 2DDostęp do elementów tablic 2DPętle zagnieżdżone z tablicami 2DPodsumowanie — tablice 2DTablice postrzępioneTypowe wzorce tablic 2DPodsumowanie — plansza do gry6Zbiory ze słownikami
Czym jest zbiór?Słownik jako zbiórDodawanie i usuwanieSuma i część wspólnaRóżnica zbiorówPowtórka – usuwanie duplikatów9Zaawansowana agregacja danych
Sumowanie wartościZnajdowanie minimum i maksimumSortowanie niestandardowePodsumowanie – Sortownik słownikówPoćwicz samodzielnie: Kompilator GDScript online