Книга знаний

Инф. технологии

Перевернуть строку на разных языках программирования

Автор статьи: Волшебник | Редакторы:
Последняя редакция №17 от 20.03.23 | История
URL: http://kb.mista.ru/article.php?id=965

Ключевые слова: реверс, строка наоборот, задом наперед, палиндром


Java

str2 = str.reverse()



Python

1)
str2 = str[::-1]

2)
str2 = ''.join(reversed(str))



C#

1)
StringBuilder str2 = new StringBuilder(str.Length);

for (int i = str.Length; i-- != 0; )
  str2.Append(str[i]);



2)
char[] arr = str.ToCharArray();

Array.Reverse(arr);
str2 = new String(arr);



JavaScript

str2 = str.split('').reverse().join('')




Pascal

for i:=length(str) downto 1 do 

  str2 := str2 + str[i];




PHP

str2 = strrev(str)




1С:


1) Циклом
    Для сч = 1 По СтрДлина(стр) Цикл

       стр2 = Сред(стр, сч, 1) + стр2;
   КонецЦикла;

2) через буфер двоичных данных (для кодировки ANSI)
Данные="Мама мыла раму";

  Буфер=ПолучитьБуферДвоичныхДанныхИзСтроки(Данные,КодировкаТекста.ANSI);
  Буфер=Буфер.Перевернуть();
  Данные=ПолучитьСтрокуИзБуфераДвоичныхДанных(Буфер,КодировкаТекста.ANSI);



или в одну строку:
стр2 = 

ПолучитьСтрокуИзБуфераДвоичныхДанных(ПолучитьБуферДвоичныхДанныхИзСтроки(стр,КодировкаТекста.ANSI).П
еревернуть(),КодировкаТекста.ANSI)



3)Рекурсия (при большой глубине приводит к вылету)
Функция Зеркало(ИсхСтрока,Знач х = 1)

   Возврат ?(х>СтрДлина(ИсхСтрока), "", Зеркало(ИсхСтрока,х+1) + Сред(ИсхСтрока,х,1));
КонецФункции



4) запросом
  стр = "Мама мыла раму";

   стр2 = "";
   
   тз = Новый ТаблицаЗначений;    
   тз.Колонки.Добавить("Буква", Новый ОписаниеТипов("Строка"));

   Для н = 1 По СтрДлина(стр) Цикл
       строкаТЗ = тз.Добавить();
       строкаТЗ.Буква = Сред(стр, н, 1);
   КонецЦикла;

   Запрос = Новый Запрос;
   Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
   Запрос.Текст = "
   |ВЫБРАТЬ Буква, Автономерзаписи() КАК НомерБуквы
   |ПОМЕСТИТЬ Слово2
   |ИЗ &ТЗ КАК Слово;
   |
   |ВЫБРАТЬ Буква
   |ИЗ Слово2
   |УПОРЯДОЧИТЬ ПО НомерБуквы УБЫВ";
   
   Запрос.УстановитьПараметр("ТЗ", тз);
   тз2 = Запрос.Выполнить().Выгрузить();

   Для Каждого строкаТЗ ИЗ тз2 Цикл
       стр2= стр2 + строкаТЗ.Буква;
   КонецЦикла;

   Сообщить(стр2);

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика