Перевернуть строку на разных языках программирования Ключевые слова: реверс, строка наоборот, задом наперед, палиндром
Javastr2 = str.reverse()
Python1)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);
JavaScriptstr2 = str.split('').reverse().join('')
Pascalfor i:=length(str) downto 1 do
str2 := str2 + str[i];
PHPstr2 = 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); |