🧑💻String
Вот полное руководство по основным методам и свойствам типа данных String в Dart, с примерами использования и рекомендациями, где они могут быть полезны.
Свойства
lengthВозвращает количество символов в строке.String text = "Hello, Dart!"; print(text.length); // Вывод: 12Где использовать: Определение длины строки, например, для валидации длины введённого пароля.
isEmptyВозвращаетtrue, если строка пуста (длина 0).String text = ""; print(text.isEmpty); // Вывод: trueГде использовать: Проверка на пустую строку перед выполнением операций с текстом.
isNotEmptyВозвращаетtrue, если строка не пуста.String text = "Hello"; print(text.isNotEmpty); // Вывод: trueГде использовать: Используется, когда нужно убедиться, что строка содержит данные, например, перед отправкой формы.
Методы
containsПроверяет, содержит ли строка указанную подстроку.String text = "Hello, Dart!"; print(text.contains("Dart")); // Вывод: trueГде использовать: Для поиска ключевых слов в тексте.
substringВозвращает подстроку, начиная с позицииstartIndexдоendIndex.String text = "Hello, Dart!"; print(text.substring(7, 11)); // Вывод: DartГде использовать: Извлечение частей текста, например, имени пользователя из email.
indexOfВозвращает индекс первого вхождения подстроки.String text = "Hello, Dart!"; print(text.indexOf("Dart")); // Вывод: 7Где использовать: Поиск позиции подстроки для разделения текста.
lastIndexOfВозвращает индекс последнего вхождения подстроки.String text = "Dart is fun, and Dart is powerful."; print(text.lastIndexOf("Dart")); // Вывод: 20Где использовать: Нахождение последнего вхождения для обработки строк.
toLowerCaseиtoUpperCaseПреобразует строку в нижний или верхний регистр.String text = "Hello, Dart!"; print(text.toLowerCase()); // Вывод: hello, dart! print(text.toUpperCase()); // Вывод: HELLO, DART!Где использовать: Стандартизация регистра, например, для поиска без учёта регистра.
trim,trimLeft,trimRightУдаляют пробелы в начале и/или конце строки.String text = " Dart is awesome! "; print(text.trim()); // Вывод: "Dart is awesome!" print(text.trimLeft()); // Вывод: "Dart is awesome! " print(text.trimRight()); // Вывод: " Dart is awesome!"Где использовать: Очистка строки от лишних пробелов перед обработкой.
replaceAllиreplaceFirstЗаменяет все вхождения подстроки или только первое.String text = "Dart is cool. Dart is fast."; print(text.replaceAll("Dart", "Flutter")); // Вывод: Flutter is cool. Flutter is fast. print(text.replaceFirst("Dart", "Flutter")); // Вывод: Flutter is cool. Dart is fast.Где использовать: Замена слов или символов, например, в шаблонах текста.
splitРазделяет строку по указанному разделителю и возвращает список.String text = "apple,banana,grape"; List<String> fruits = text.split(","); print(fruits); // Вывод: [apple, banana, grape]Где использовать: Разбиение текста на части, например, CSV-данные.
startsWithиendsWithПроверяют, начинается или заканчивается ли строка на указанную подстроку.String text = "Hello, Dart!"; print(text.startsWith("Hello")); // Вывод: true print(text.endsWith("Dart!")); // Вывод: trueГде использовать: Проверка формата текста, например, проверка на конкретное расширение файла.
codeUnitAtиcodeUnitsВозвращают Unicode код символа или список кодов символов в строке.String text = "Dart"; print(text.codeUnitAt(0)); // Вывод: 68 (код 'D') print(text.codeUnits); // Вывод: [68, 97, 114, 116]Где использовать: Для работы с Unicode, например, шифрование текста.
compareToСравнивает строки лексикографически.String a = "apple"; String b = "banana"; print(a.compareTo(b)); // Вывод: -1 (a перед b)Где использовать: Сортировка строк.
padLeftиpadRightДобавляют символы слева или справа до указанной ширины.String text = "5"; print(text.padLeft(3, '0')); // Вывод: 005Где использовать: Форматирование чисел, например, для представления времени в виде
00:05.replaceAllMappedЗаменяет все вхождения шаблона, используя функцию обратного вызова.String text = "123-456-7890"; print(text.replaceAllMapped(RegExp(r'\d'), (match) => '*')); // Вывод: ***-***-****Где использовать: Маскирование данных, например, скрытие части телефонного номера.
splitMapJoinРазделяет строку по шаблону и объединяет результат.String text = "Dart and Flutter"; print(text.splitMapJoin("and", onMatch: (m) => "&", onNonMatch: (n) => n.toUpperCase())); // Вывод: DART & FLUTTERГде использовать: Для более гибкой замены и обработки текста.
allMatchesиmatchAsPrefixВозвращают все совпадения или проверяют, начинается ли строка с шаблона.String text = "Dart is a Dart language"; Iterable<Match> matches = RegExp(r'Dart').allMatches(text); for (Match m in matches) { print("Found Dart at: ${m.start}"); } // Вывод: // Found Dart at: 0 // Found Dart at: 11Где использовать: Поиск всех вхождений подстроки для подсчета или анализа.
Этот пример показывает использование различных методов и свойств String с TextField для ввода текста и Text для отображения результата.
Описание кода
_inputTextхранит текст, введённый пользователем._outputTextхранит результаты применения различных методовString.Метод
_processText()обрабатывает текст, применяя к нему различные методы, и обновляет состояние.TextFieldпозволяет вводить текст, который сохраняется в переменной_inputText.ElevatedButtonвызывает метод_processText(), который применяет методы и обновляет вывод.TextиSingleChildScrollViewотображают результат, позволяя прокручивать его, если он выходит за пределы экрана.
Этот код даст полное понимание применения различных методов String в приложении Flutter.
Last updated