Статьи

Переверните струну в дротике

В этой статье мы рассмотрим обращение строк на языке Google Dart.

Как реализовать решение

Ниже представлено законченное решение Dart:

1
2
3
4
5
6
void main(List<String> args) {
    print( reverse(args[0]) );
}
String reverse(input) {
    return input.split('').reversed.join();
}

Подобно C или Java, Dart использует имя функции main в качестве точки входа в программу. В этом случае нам не нужно main возвращать какие-либо данные, поэтому используется тип void . В параметрах основной функции вы увидите List<String> args который определит args как список строк и заполнит этот список входными данными из командной строки в форме аргументов, которые в данном случае являются просто строками, разделенными пробелами.

Например:

1
dart reverse-string.dart "Hello World"

… Заполняет список аргументов как [Hello World] .

1
dart reverse-string.dart "Hello" "World"

… Заполняет список аргументов как [Hello, World] .

Следует отметить, что в этом примере программы будет обработан только первый аргумент, переданный программе, потому что мы только передаем первую строку в списке на вход нашей обратной функции, добавляя позицию индекса [0] к args в print( reverse(args[0]) ); линия. Итак, во втором примере выше, только Hello будет полностью изменен.

Итак, давайте посмотрим на эту обратную функцию. Мы определили функцию с типом String как она будет возвращать нашу обратную строку для вывода на консоль. Он принимает input параметр как неопределенную переменную, но мы предполагаем, что это будет строковое значение.

Класс String библиотеки Dart:core содержит метод split который разбивает строку или список строк на список подстрок на основе заданного ему шаблона. Если шаблон пустой, как в нашей обратной функции, split разбивает ввод на единичные кодовые строки (отдельные символы). Так что ‘Hello’ с пустым шаблоном '' возвращает [H, e, l, l, o].

После того, как мы разбили строку на символы с помощью split, мы будем использовать reversed свойство из класса List библиотеки Dart:core . Это свойство просто берет список и возвращает его в обратном порядке в качестве объекта Iterable. Таким образом, наш список примеров, [H, e, l, l, o], становится (o, l, l, e, H).

Для целей этого примера программы очень мало различий между объектами List и Iterable. Оба на самом деле повторяемы. На высоком уровне списки будут иметь дополнительные функции, такие как индексированный доступ для чтения / записи к своим элементам и функции сортировки. Итерации, с другой стороны, обычно создаются один раз, а затем доступны как данные только для чтения во время итерационной операции, такой как цикл for.

И Iterables, и Lists имеют метод join который берет их элементы и объединяет их в строку. Мы используем join здесь в обращенном Iterable, который возвращается как окончательное строковое значение нашей reverse функции. Это значение затем выводится на консоль из функции print в main .

Как запустить решение

Чтобы запустить программу обращения строк Dart, загрузите файл dart с GitHub, установите Dart SDK, как описано в dart.dev , и выполните следующую команду из командной строки:

1
dart reverse-string.dart "Hello, World!"

Кроме того, вы можете скопировать исходный код в DartPad , онлайн-переводчик Dart. Просто имейте в виду, что у вас не будет доступа к вводу аргументов командной строки с помощью этого метода, поэтому вам придется вместо этого заполнить переменную args в коде. Например:

1
2
3
4
5
6
7
void main(List<String> args) {
    args = ['Hello World'];
    print( reverse(args[0]) );
}
String reverse(input) {
    return input.split('').reversed.join();
}

1


Рекомендации

  1. P. Ryon (slashdoom), «Переверни струну в дротике», Кодер-отступник, 16 октября 2019 года. [В сети]. Доступно: https://therenegadecoder.com/code/reverse-a-string-in-dart/ . [Доступ: 16 октября 2019 г.]

Примеры программ поддерживаются TheRenegadeCoder .

Смотрите оригинальную статью здесь: перевернуть строку в дротик

Мнения, высказанные участниками Java Code Geeks, являются их собственными.