Замена и обрезка пробелов
Часть раздела Логика и потоки выполнения путешествия по GDScript на Coddy. Урок 3 из 78.
replace(what, with) возвращает новую строку, в которой каждое вхождение what заменено на with. Замена на пустую строку удаляет текст:
var phone := "555-123-4567"
print(phone.replace("-", ""))
print(phone.replace("-", " "))
print(phone)5551234567
555 123 4567
555-123-4567Исходная строка не меняется. replace() учитывает регистр; replacen() выполняет ту же задачу и игнорирует регистр:
var chat := "Hello hello HELLO"
print(chat.replace("hello", "hi"))
print(chat.replacen("hello", "hi"))Hello hi HELLO
hi hi hiВ тексте, введённом пользователем, часто есть лишние пробелы по краям. strip_edges() удаляет пробелы, табуляции и переносы строк с обоих концов и сохраняет те, что находятся посередине:
var typed := " Ana Lee "
print("[" + typed.strip_edges() + "]")[Ana Lee]strip_edges(true, false) удаляет пробелы только с левого края, а strip_edges(false, true) — только с правого. Чтобы удалить определённый текст с края, используй trim_prefix() или trim_suffix(). Они ничего не меняют, если такого текста нет:
print("level_03.tscn".trim_suffix(".tscn"))
print("level_03.tscn".trim_suffix(".png"))level_03
level_03.tscnКаждый из этих методов возвращает строку, поэтому их можно объединять в цепочку: raw.strip_edges().to_lower().replace(" ", "_").
Задание
ЛегкоПрограмма считывает название уровня в title. Преобразуй его в слаг — версию названия, которую можно использовать как имя файла, — и выведи его. В таком порядке:
- Удали пробелы с обоих концов
- Преобразуй текст в нижний регистр
- Замени каждый оставшийся пробел на
- - Удали все
!,?и.
Для ввода Is Godot Fun? (с пробелами вокруг) вывод будет таким:
is-godot-funПопробуйте сами
extends Node
func _ready():
var title := OS.read_string_from_stdin()
# Сформируйте слаг и выведите его
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и потоки выполнения
1Строки: углублённое изучение
Методы строкПоиск в строкахЗамена и обрезка пробеловРазделение и объединениеПовторение — проверка имени пользователя4Словари. Часть 2
Вложенные словариМассивы словарейОбъединение словарейКопирование словарейПовторение — подсчёт частоты10Продвинутые функции
Возврат нескольких значенийЛямбда-функции. Часть 1Лямбда-функции. Часть 2Повторение — сортировка с помощью лямбда-функцииРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного массива13Система управления запасами
Обзор проектаДобавление товара2Продвинутое управление ветвлением
Сопоставление с переменнымиУсловия в шаблонахШаблоны массивовШаблоны словарейПроверка принадлежностиИтоги — парсер команд5Приложение «Телефонная книга»
Показать менюДобавить контакт8Менеджер успеваемости студентов
Обзор проектаДобавить студента3Многомерные массивы
Основы двумерных массивовДоступ к элементам двумерного массиваВложенные циклы с двумерными массивамиПовторение: двумерные массивыРваные массивыТипичные шаблоны работы с двумерными массивамиПовторение: игровое поле6Множества и словари
Что такое множество?Словарь как множествоДобавление и удалениеОбъединение и пересечениеРазность множествПовторение — удаление дубликатовПотренируйтесь самостоятельно: Онлайн-компилятор GDScript