首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#中strtr函数的转换

C#中strtr函数的转换
EN

Stack Overflow用户
提问于 2015-11-02 09:32:13
回答 4查看 1.5K关注 0票数 5

需要在C#中转换这个php代码

代码语言:javascript
复制
strtr($input, '+/', '-_')

是否存在一个等价的C#函数?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-02 09:35:19

PHP方法strtr()是平移方法,而不是string replace方法。如果要在C#中执行同样的操作,请使用以下命令:

根据你的意见

代码语言:javascript
复制
string input = "baab";
var output = input.Replace("a", "0").Replace("b","1");

注意:在strtr()中没有完全类似于C#的方法。

您可以在这里找到更多关于String.Replace方法的信息。

票数 3
EN

Stack Overflow用户

发布于 2015-11-02 11:29:45

@Damith‘Rahul Nikate @Willem van Rumpt

你的解决方案一般有效。有不同结果的特殊情况:

代码语言:javascript
复制
echo strtr("hi all, I said hello","ah","ha");

返回

代码语言:javascript
复制
ai hll, I shid aello

而你的代码:

代码语言:javascript
复制
ai all, I said aello

我认为php strtr同时替换了输入数组中的字符,而您的解决方案则执行替换,然后将结果用于执行另一个替换。因此,我做了以下修改:

代码语言:javascript
复制
   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);
    }

所以密码

代码语言:javascript
复制
MyStrTr("hi all, I said hello", "ah", "ha");

报告与php相同的结果:

代码语言:javascript
复制
ai hll, I shid aello
票数 4
EN

Stack Overflow用户

发布于 2015-11-02 09:34:04

代码语言:javascript
复制
   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

抽样方法:

代码语言:javascript
复制
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;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33474491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档