Intereting Posts
передача пользовательских параметров на вкладку страницы facebook fan Работа в фоновом режиме с веб-приложения Умеет видеть переменную в print_r (), но не уверен, как получить доступ к ней в коде PHP – получение записей массивов по диапазону индексов jquery autocomplete get id как выбранная метка Завершение кода PHP для NetBeans для стандартных функций Недействительный тайм-аут mod_fastcgi не работает Анализ и редактирование XML-файла в PHP Почему я должен использовать dirname (__ FILE__) в инструкции include или include_once? Используя PHP, произвольно соединяйте группу элементов, не связывая их с самим собой, без прямых пар Насколько хороша производительность PHP? В PHP, как обнаружить выполнение из режима CLI или через браузер? Как проверить, существует ли файл из URL-адреса Использовать php для задания заданий cron в Windows Удалить cookie сеанса facebook из моего приложения при выходе из системы

Преобразование функции strtr php в C #

Необходимо преобразовать этот PHP-код в C #

strtr($input, '+/', '-_') 

Существует ли эквивалентная функция C #?

Related of "Преобразование функции strtr php в C #"

Метод PHP strtr() – это метод перевода, а не метод string replace . Если вы хотите сделать то же самое в C# используйте следующее:

Согласно вашим комментариям

 string input = "baab"; var output = input.Replace("a", "0").Replace("b","1"); 

Примечание. В C# не существует точно такого же метода, как strtr() .

Вы можете найти больше о методе String.Replace здесь

  string input ="baab"; string strfrom="ab"; string strTo="01"; for(int i=0; i< strfrom.Length;i++) { input = input.Replace(strfrom[i], strTo[i]); } //you get 1001 

образец метода:

 string StringTranslate(string input, string frm, string to) { for(int i=0; i< frm.Length;i++) { input = input.Replace(frm[i], to[i]); } return input; } 

Ужасы удивляют PHP … Я был смущен вашими комментариями, поэтому посмотрел его в руководстве. Ваша форма заменяет отдельные символы (все «b» получат «1», все «a» получат «0»). В C # нет прямого эквивалента, но просто замена дважды выполнит задание:

 string result = input.Replace('+', '-').Replace('/', '_') 

@Damith @Rahul Nikate @ Виллем ван Рампт

Ваши решения в целом работают. Существуют отдельные случаи с различным результатом:

 echo strtr("hi all, I said hello","ah","ha"); 

возвращается

 ai hll, I shid aello 

в то время как ваш код:

 ai all, I said aello 

Я думаю, что php strtr заменяет символы в массиве ввода, тогда как ваши решения выполняют замену, тогда результат используется для выполнения другого. Поэтому я сделал следующие изменения:

  private string MyStrTr(string source, string frm, string to) { char[] input = source.ToCharArray(); bool[] replaced = new bool[input.Length]; for (int j = 0; j < input.Length; j++) replaced[j] = false; for (int i = 0; i < frm.Length; i++) { for(int j = 0; j<input.Length;j++) if (replaced[j] == false && input[j]==frm[i]) { input[j] = to[i]; replaced[j] = true; } } return new string(input); } 

Итак, код

 MyStrTr("hi all, I said hello", "ah", "ha"); 

сообщает тот же результат, что и php:

 ai hll, I shid aello